From 038459b0837f881e4a41e136374e7ec886a11b7c Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 25 Oct 2021 13:59:07 +0200 Subject: [PATCH 001/130] ConfigWizard: Added missed Refresh() --- src/slic3r/GUI/ConfigWizard.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 4d50e14905..cceaff2e2b 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1934,6 +1934,8 @@ void ConfigWizard::priv::load_pages() index->go_to(former_active); // Will restore the active item/page if possible q->Layout(); +// This Refresh() is needed to avoid ugly artifacts after printer selection, when no one vendor was selected from the very beginnig + q->Refresh(); } void ConfigWizard::priv::init_dialog_size() From e2475c95768378e06e2ed8c3863a7fcdd8cdfc35 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 17 Aug 2021 11:56:58 +0200 Subject: [PATCH 002/130] Workaround for #6814 --- src/slic3r/GUI/ConfigManipulation.cpp | 4 ++-- src/slic3r/GUI/ConfigManipulation.hpp | 2 +- src/slic3r/GUI/Tab.cpp | 11 ++++++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 070773c116..7c0110a1fd 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -33,7 +33,7 @@ void ConfigManipulation::toggle_field(const std::string& opt_key, const bool tog cb_toggle_field(opt_key, toggle, opt_index); } -void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config) +void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config, bool set_support_material_overhangs_queried) { // #ys_FIXME_to_delete //! Temporary workaround for the correct updates of the TextCtrl (like "layer_height"): @@ -160,7 +160,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con apply(config, &new_conf); } - static bool support_material_overhangs_queried = false; + static bool support_material_overhangs_queried = set_support_material_overhangs_queried; if (config->opt_bool("support_material")) { // Ask only once. diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index 1e91dbec2b..e96ea3a4d8 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -49,7 +49,7 @@ public: void toggle_field(const std::string& field_key, const bool toggle, int opt_index = -1); // FFF print - void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false); + void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false, bool set_support_material_overhangs_queried = false); void toggle_print_fff_options(DynamicPrintConfig* config); // SLA print diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 8b3cd4cf89..a51b0e1607 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1735,7 +1735,16 @@ void TabPrint::update() m_update_cnt++; - m_config_manipulation.update_print_fff_config(m_config, true); + // see https://github.com/prusa3d/PrusaSlicer/issues/6814 + // ysFIXME: It's temporary workaround and should be clewer reworked: + // Note: This workaround works till "support_material" and "overhangs" is exclusive sets of mutually no-exclusive parameters. + // But it should be corrected when we will have more such sets. + // Disable check of the compatibility of the "support_material" and "overhangs" options for saved user profile + const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset(); + bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty; + bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs"); + + m_config_manipulation.update_print_fff_config(m_config, true, is_user_and_saved_preset && support_material_overhangs_queried); update_description_lines(); Layout(); From 014bef382ad4ba477d133bf76f2efda0f25fc223 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 25 Oct 2021 14:47:13 +0200 Subject: [PATCH 003/130] #6999 - Fixed variable layer height editing not working when raft layers > 0 --- src/libslic3r/PrintObject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index fd98feff74..cd973ac9de 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1669,7 +1669,7 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c // Must not be of even length. ((layer_height_profile.size() & 1) != 0 || // Last entry must be at the top of the object. - std::abs(layer_height_profile[layer_height_profile.size() - 2] - slicing_parameters.object_print_z_max) > 1e-3)) + std::abs(layer_height_profile[layer_height_profile.size() - 2] - slicing_parameters.object_print_z_max + slicing_parameters.object_print_z_min) > 1e-3)) layer_height_profile.clear(); if (layer_height_profile.empty()) { From 3d87904e66983f042d4a58ea7c1d68f035736769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 22 Oct 2021 12:17:42 +0200 Subject: [PATCH 004/130] Fixed the bottom layer of multi-material painted objects sunken below the print bed (#7107). --- src/libslic3r/MultiMaterialSegmentation.cpp | 24 ++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 86b3488b08..3220a1e022 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -1252,6 +1252,14 @@ static void cut_segmented_layers(const std::vector BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - cutting segmented layers in parallel - end"; } +static bool is_volume_sinking(const indexed_triangle_set &its, const Transform3d &trafo) +{ + const Transform3f trafo_f = trafo.cast(); + for (const stl_vertex &vertex : its.vertices) + if ((trafo_f * vertex).z() < SINKING_Z_THRESHOLD) return true; + return false; +} + //#define MMU_SEGMENTATION_DEBUG_TOP_BOTTOM // Returns MMU segmentation of top and bottom layers based on painting in MMU segmentation gizmo @@ -1298,7 +1306,21 @@ static inline std::vector> mmu_segmentation_top_and_bott #endif // MMU_SEGMENTATION_DEBUG_TOP_BOTTOM if (! painted.indices.empty()) { std::vector top, bottom; - slice_mesh_slabs(painted, zs, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); + if (!zs.empty() && is_volume_sinking(painted, volume_trafo)) { + std::vector zs_sinking = {0.f}; + Slic3r::append(zs_sinking, zs); + slice_mesh_slabs(painted, zs_sinking, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); + + MeshSlicingParams slicing_params; + slicing_params.trafo = volume_trafo; + Polygons bottom_slice = slice_mesh(painted, zs[0], slicing_params); + + top.erase(top.begin()); + bottom.erase(bottom.begin()); + + bottom[0] = union_(bottom[0], bottom_slice); + } else + slice_mesh_slabs(painted, zs, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); auto merge = [](std::vector &&src, std::vector &dst) { auto it_src = find_if(src.begin(), src.end(), [](const Polygons &p){ return ! p.empty(); }); if (it_src != src.end()) { From 0836fbb4532a06597ceeebf41fc583c81131567f Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 25 Oct 2021 16:27:53 +0200 Subject: [PATCH 005/130] Allow to enter empty value for "G-code thumbnails" option --- src/slic3r/GUI/Field.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 7dbb9d7875..52a03eabf2 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -414,7 +414,7 @@ void Field::sys_color_changed() template bool is_defined_input_value(wxWindow* win, const ConfigOptionType& type) { - if (!win || (static_cast(win)->GetValue().empty() && type != coString && type != coStrings)) + if (!win || (static_cast(win)->GetValue().empty() && type != coString && type != coStrings && type != coPoints)) return false; return true; } From 0c29eb9943df769ed045bd88f159406ecf9763ed Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 25 Oct 2021 16:55:02 +0200 Subject: [PATCH 006/130] Follow up e2475c95768378e06e2ed8c3863a7fcdd8cdfc35 = code refactoring --- src/slic3r/GUI/ConfigManipulation.cpp | 2 +- src/slic3r/GUI/ConfigManipulation.hpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 7c0110a1fd..b993192749 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -160,7 +160,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con apply(config, &new_conf); } - static bool support_material_overhangs_queried = set_support_material_overhangs_queried; + support_material_overhangs_queried = set_support_material_overhangs_queried; if (config->opt_bool("support_material")) { // Ask only once. diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index e96ea3a4d8..8ebfad0eaa 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -20,6 +20,7 @@ namespace GUI { class ConfigManipulation { bool is_msg_dlg_already_exist{ false }; + bool support_material_overhangs_queried{ false }; // function to loading of changed configuration std::function load_config = nullptr; From 054dd569af8503b9589c0f551fe7eecbf7bfc438 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 26 Oct 2021 08:28:03 +0200 Subject: [PATCH 007/130] MSW Dark mode: Set mode colors for RichToolTips --- src/slic3r/GUI/Plater.cpp | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index afbfc7d3c8..ec4fc2d80d 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -661,6 +661,16 @@ void Sidebar::priv::show_preset_comboboxes() } #ifdef _WIN32 +using wxRichToolTipPopup = wxCustomBackgroundWindow; +static wxRichToolTipPopup* get_rtt_popup(wxButton* btn) +{ + auto children = btn->GetChildren(); + for (auto child : children) + if (child->IsShown()) + return dynamic_cast(child); + return nullptr; +} + void Sidebar::priv::show_rich_tip(const wxString& tooltip, wxButton* btn) { if (tooltip.IsEmpty()) @@ -669,18 +679,26 @@ void Sidebar::priv::show_rich_tip(const wxString& tooltip, wxButton* btn) tip.SetIcon(wxICON_NONE); tip.SetTipKind(wxTipKind_BottomRight); tip.SetTitleFont(wxGetApp().normal_font()); - tip.SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); + tip.SetBackgroundColour(wxGetApp().get_window_default_clr()); + tip.ShowFor(btn); + // Every call of the ShowFor() creates new RichToolTip and show it. + // Every one else are hidden. + // So, set a text color just for the shown rich tooltip + if (wxRichToolTipPopup* popup = get_rtt_popup(btn)) { + auto children = popup->GetChildren(); + for (auto child : children) { + child->SetForegroundColour(wxGetApp().get_label_clr_default()); + // we neen just first text line for out rich tooltip + return; + } + } } void Sidebar::priv::hide_rich_tip(wxButton* btn) { - auto children = btn->GetChildren(); - using wxRichToolTipPopup = wxCustomBackgroundWindow; - for (auto child : children) { - if (wxRichToolTipPopup* popup = dynamic_cast(child)) - popup->Dismiss(); - } + if (wxRichToolTipPopup* popup = get_rtt_popup(btn)) + popup->Dismiss(); } #endif From e1b3ba063b223505b25d349753e798f0b972c455 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Tue, 26 Oct 2021 08:45:21 +0200 Subject: [PATCH 008/130] Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Printbed collision detection made cheaper for rectangular beds and faster for circular beds --- src/slic3r/GUI/3DScene.cpp | 22 ++++++++++++---------- src/slic3r/GUI/GLCanvas3D.cpp | 29 ++++++++++++++++++++++++++--- src/slic3r/GUI/GLCanvas3D.hpp | 15 ++++++++++++++- 3 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index c8e72ba399..ee28fd718f 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -990,22 +990,24 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M } }; - auto check_against_circular_bed = [](GLVolume& volume, ModelInstanceEPrintVolumeState& state, const Vec2d& center, double radius) { - const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1)? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); - //FIXME 2D convex hull is O(n log n), while testing the 2D points against 2D circle is O(n). - const Polygon volume_hull_2d = its_convex_hull_2d_above(mesh->its, volume.world_matrix().cast(), 0.0f); - size_t outside_count = 0; + auto check_against_circular_bed = [bed_height](GLVolume& volume, ModelInstanceEPrintVolumeState& state, const Vec2d& center, double radius) { + const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); const double sq_radius = sqr(radius); - for (const Point& p : volume_hull_2d.points) { - if (sq_radius < (unscale(p) - center).squaredNorm()) - ++outside_count; + size_t outside_count = 0; + size_t valid_count = 0; + for (const Vec3f& v : mesh->its.vertices) { + const Vec3f world_v = volume.world_matrix().cast() * v; + if (0.0f <= world_v.z()) { + ++valid_count; + if (sq_radius < sqr(world_v.x() - center.x()) + sqr(world_v.y() - center.y()) || bed_height < world_v.z()) + ++outside_count; + } } - volume.is_outside = outside_count > 0; if (volume.printable) { if (state == ModelInstancePVS_Inside && volume.is_outside) state = ModelInstancePVS_Fully_Outside; - if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && outside_count < volume_hull_2d.size()) + if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && outside_count < valid_count) state = ModelInstancePVS_Partly_Outside; } }; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index b44fa167a3..4af16fc1dc 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2150,10 +2150,18 @@ void GLCanvas3D::load_preview(const std::vector& str_tool_colors, c // Release OpenGL data before generating new data. this->reset_volumes(); +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + bool requires_convex_hulls = wxGetApp().plater()->get_bed().get_shape_type() != Bed3D::EShapeType::Rectangle; + _load_print_toolpaths(requires_convex_hulls); + _load_wipe_tower_toolpaths(str_tool_colors, requires_convex_hulls); + for (const PrintObject* object : print->objects()) + _load_print_object_toolpaths(*object, str_tool_colors, color_print_values, requires_convex_hulls); +#else _load_print_toolpaths(); _load_wipe_tower_toolpaths(str_tool_colors); for (const PrintObject* object : print->objects()) _load_print_object_toolpaths(*object, str_tool_colors, color_print_values); +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS _update_toolpath_volumes_outside_state(); _set_warning_notification_if_needed(EWarning::ToolpathOutside); @@ -5804,7 +5812,11 @@ void GLCanvas3D::_stop_timer() m_timer.Stop(); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_print_toolpaths(bool generate_convex_hulls) +#else void GLCanvas3D::_load_print_toolpaths() +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { const Print *print = this->fff_print(); if (print == nullptr) @@ -5858,12 +5870,17 @@ void GLCanvas3D::_load_print_toolpaths() } } #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - volume->calc_convex_hull_3d(); + if (generate_convex_hulls) + volume->calc_convex_hull_3d(); #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS volume->indexed_vertex_array.finalize_geometry(m_initialized); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, const std::vector& color_print_values, bool generate_convex_hulls) +#else void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, const std::vector& color_print_values) +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { std::vector> tool_colors = _parse_colors(str_tool_colors); @@ -6153,7 +6170,8 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) { GLVolume* v = m_volumes.volumes[i]; - v->calc_convex_hull_3d(); + if (generate_convex_hulls) + v->calc_convex_hull_3d(); v->indexed_vertex_array.finalize_geometry(m_initialized); } #else @@ -6164,7 +6182,11 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - end" << m_volumes.log_memory_info() << log_memory_info(); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_tool_colors, bool generate_convex_hulls) +#else void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_tool_colors) +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { const Print *print = this->fff_print(); if (print == nullptr || print->wipe_tower_data().tool_changes.empty()) @@ -6318,7 +6340,8 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) { GLVolume* v = m_volumes.volumes[i]; - v->calc_convex_hull_3d(); + if (generate_convex_hulls) + v->calc_convex_hull_3d(); v->indexed_vertex_array.finalize_geometry(m_initialized); } #else diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index a18f1ec072..e521add98f 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -955,6 +955,18 @@ private: void _start_timer(); void _stop_timer(); +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + // Create 3D thick extrusion lines for a skirt and brim. + // Adds a new Slic3r::GUI::3DScene::Volume to volumes. + void _load_print_toolpaths(bool generate_convex_hulls = false); + // Create 3D thick extrusion lines for object forming extrusions. + // Adds a new Slic3r::GUI::3DScene::Volume to $self->volumes, + // one for perimeters, one for infill and one for supports. + void _load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, + const std::vector& color_print_values, bool generate_convex_hulls = false); + // Create 3D thick extrusion lines for wipe tower extrusions + void _load_wipe_tower_toolpaths(const std::vector& str_tool_colors, bool generate_convex_hulls = false); +#else // Create 3D thick extrusion lines for a skirt and brim. // Adds a new Slic3r::GUI::3DScene::Volume to volumes. void _load_print_toolpaths(); @@ -962,9 +974,10 @@ private: // Adds a new Slic3r::GUI::3DScene::Volume to $self->volumes, // one for perimeters, one for infill and one for supports. void _load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, - const std::vector& color_print_values); + const std::vector& color_print_values); // Create 3D thick extrusion lines for wipe tower extrusions void _load_wipe_tower_toolpaths(const std::vector& str_tool_colors); +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // Load SLA objects and support structures for objects, for which the slaposSliceSupports step has been finished. void _load_sla_shells(); From 79eb59b9f23c281125dbd0dd989b979fe171a401 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 26 Oct 2021 09:54:55 +0200 Subject: [PATCH 009/130] Fix of #7168: Crash when layer count exceeds 4095 --- src/libslic3r/TriangleMeshSlicer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 83a2be3226..8941ceeec8 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -332,7 +332,7 @@ void slice_facet_at_zs( if (min_z != max_z && slice_facet(*it, vertices, indices, edge_ids, idx_vertex_lowest, false, il) == FacetSliceType::Slicing) { assert(il.edge_type != IntersectionLine::FacetEdgeType::Horizontal); size_t slice_id = it - zs.begin(); - boost::lock_guard l(lines_mutex[slice_id >> 6]); + boost::lock_guard l(lines_mutex[slice_id % 64]); lines[slice_id].emplace_back(il); } } From 00c444f8c8e938757de6c569462b99eae11e62e7 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Mon, 25 Oct 2021 15:23:15 +0200 Subject: [PATCH 010/130] Tiny optimization of slice_mesh_slabs() with mirrored objects. --- src/libslic3r/TriangleMeshSlicer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 8941ceeec8..5be86de99b 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -1919,7 +1919,7 @@ void slice_mesh_slabs( #endif // EXPENSIVE_DEBUG_CHECKS std::vector vertices_transformed = transform_mesh_vertices_for_slicing(mesh, trafo); - const bool mirrored = trafo.matrix().determinant() < 0; + const auto mirrored_sign = int64_t(trafo.matrix().block(0, 0, 3, 3).determinant() < 0 ? -1 : 1); std::vector face_orientation(mesh.indices.size(), FaceOrientation::Up); for (const stl_triangle_vertex_indices &tri : mesh.indices) { @@ -1930,7 +1930,7 @@ void slice_mesh_slabs( const Point a = to_2d(fa).cast(); const Point b = to_2d(fb).cast(); const Point c = to_2d(fc).cast(); - const int64_t d = cross2((b - a).cast(), (c - b).cast()) * (mirrored ? -1 : 1); + const int64_t d = cross2((b - a).cast(), (c - b).cast()) * mirrored_sign; FaceOrientation fo = FaceOrientation::Vertical; if (d > 0) fo = FaceOrientation::Up; From 4d2017188d5ddde8c218de1db97e8fec71876ad5 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 26 Oct 2021 10:03:29 +0200 Subject: [PATCH 011/130] Updated GLEW to 2.2.0 --- src/glew/README.md | 130 +- src/glew/include/GL/glew.h | 6856 +++++++++++++- src/glew/include/GL/glxew.h | 203 +- src/glew/include/GL/wglew.h | 152 +- src/glew/src/glew.c | 17371 ++++++++++++++++++++++++++++++---- 5 files changed, 22429 insertions(+), 2283 deletions(-) diff --git a/src/glew/README.md b/src/glew/README.md index f31cd0ce28..a5942cac58 100644 --- a/src/glew/README.md +++ b/src/glew/README.md @@ -2,6 +2,8 @@ THIS IS NOT THE COMPLETE GLEW DISTRIBUTION. ONLY FILES NEEDED FOR COMPILING GLEW # GLEW - The OpenGL Extension Wrangler Library +The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris. + ![](http://glew.sourceforge.net/glew.png) http://glew.sourceforge.net/ @@ -12,40 +14,71 @@ https://github.com/nigels-com/glew [![Gitter](https://badges.gitter.im/nigels-com/glew.svg)](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download) +## Table of Contents + +* [Downloads](#downloads) + * [Recent snapshots](#recent-snapshots) +* [Build](#build) + * [Linux and Mac](#linux-and-mac) + * [Using GNU Make](#using-gnu-make) + * [Install build tools](#install-build-tools) + * [Build](#build-1) + * [Linux EGL](#linux-egl) + * [Linux OSMesa](#linux-osmesa) + * [Linux mingw-w64](#linux-mingw-w64) + * [Using cmake](#using-cmake) + * [Install build tools](#install-build-tools-1) + * [Build](#build-2) + * [Windows](#windows) + * [Visual Studio](#visual-studio) + * [MSYS/Mingw](#msysmingw) + * [MSYS2/Mingw-w64](#msys2mingw-w64) +* [glewinfo](#glewinfo) +* [Code Generation](#code-generation) +* [Authors](#authors) +* [Contributions](#contributions) +* [Copyright and Licensing](#copyright-and-licensing) + ## Downloads -Current release is [2.0.0](https://sourceforge.net/projects/glew/files/glew/2.0.0/). +Current release is [2.1.0](https://sourceforge.net/projects/glew/files/glew/2.1.0/). [(Change Log)](http://glew.sourceforge.net/log.html) -Sources available as -[ZIP](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.zip/download) or -[TGZ](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download). +Sources available as +[ZIP](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip/download) or +[TGZ](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.tgz/download). -Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0-win32.zip/download). +Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0-win32.zip/download). ### Recent snapshots Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases. -[glew-20160708.tgz](http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20160708.tgz/download) -*GLEW 2.0.0 RC: Core context, EGL support, no MX* +[glew-20200115.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20200115.tgz/download) *GLEW 2.2.0 RC3: fixes* -[glew-20160402.tgz](http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20160402.tgz/download) -*GLEW 2.0.0 RC: Core context, EGL support, no MX* +[glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes* ## Build -From a downloaded tarball or zip archive: +It is highly recommended to build from a tgz or zip release snapshot. +The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. +The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/). +For most end-users of GLEW the official releases are the best choice, with first class support. ### Linux and Mac #### Using GNU Make +GNU make is the primary build system for GLEW, historically. +It includes targets for building the sources and headers, for maintenance purposes. + ##### Install build tools -Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev git` +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev` -RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel git` +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel` + +FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5` ##### Build @@ -53,24 +86,46 @@ RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel $ sudo make install $ make clean -Targets: `all, glew.lib, glew.bin, clean, install, uninstall` +Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall` Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=` +_Note: you may need to call `make` in the **auto** folder first_ + +##### Linux EGL + + $ sudo apt install libegl1-mesa-dev + $ make SYSTEM=linux-egl + +##### Linux OSMesa + + $ sudo apt install libosmesa-dev + $ make SYSTEM=linux-osmesa + +##### Linux mingw-w64 + + $ sudo apt install mingw-w64 + $ make SYSTEM=linux-mingw32 + $ make SYSTEM=linux-mingw64 + #### Using cmake +The cmake build is mostly contributer maintained. +Due to the multitude of use cases this is maintained on a _best effort_ basis. +Pull requests are welcome. + *CMake 2.8.12 or higher is required.* ##### Install build tools -Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libXmu-dev libXi-dev libgl-dev git cmake` +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git` -RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel git cmake` +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git` ##### Build $ cd build - $ cmake ./cmake + $ cmake ./cmake $ make -j4 | Target | Description | @@ -94,9 +149,9 @@ RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel g #### Visual Studio -Use the provided Visual Studio project file in build/vc12/ +Use the provided Visual Studio project file in build/vc15/ -Projects for vc6 and vc10 are also provided +Projects for vc6, vc10, vc12 and vc14 are also provided #### MSYS/Mingw @@ -116,7 +171,7 @@ Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw- Requirements: bash, make, gcc - $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc + $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc $ make $ make install $ make install.all @@ -126,8 +181,8 @@ Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64` ## glewinfo `glewinfo` is a command-line tool useful for inspecting the capabilities of an -OpenGL implementation and GLEW support for that. Please include the output of -`glewinfo` with bug reports, as appropriate. +OpenGL implementation and GLEW support for that. Please include `glewinfo.txt` +with bug reports, as appropriate. --------------------------- GLEW Extension Info @@ -147,12 +202,12 @@ OpenGL implementation and GLEW support for that. Please include the output of glDrawRangeElements: OK glTexImage3D: OK glTexSubImage3D: OK - + ... ## Code Generation -A Unix or Mac environment is neded for building GLEW from scratch to +A Unix or Mac environment is needed for building GLEW from scratch to include new extensions, or customize the code generation. The extension data is regenerated from the top level source directory with: @@ -163,10 +218,6 @@ download a pre-generated (unsupported) snapshot: https://sourceforge.net/projects/glew/files/glew/snapshots/ -Travis-built snapshots are also available: - -https://glew.s3.amazonaws.com/index.html - ## Authors GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com) @@ -175,20 +226,35 @@ with bug fixes, new OpenGL extension support and new releases. GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/) and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/). Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also -assisted with the design and debugging process. +assisted with the design and debugging process. The acronym GLEW originates from Aaron Lefohn. Pasi Kärkkäinen identified and fixed several problems with GLX and SDL. Nate Robins created the `wglinfo` utility, to -which modifications were made by Michael Wimmer. +which modifications were made by Michael Wimmer. + +## Contributions + +GLEW welcomes community contributions. Typically these are co-ordinated +via [Issues](https://github.com/nigels-com/glew/issues) or +[Pull Requests](https://github.com/nigels-com/glew/pulls) in the +GitHub web interface. + +Be sure to mention platform and compiler toolchain details when filing +a bug report. The output of `glewinfo` can be quite useful for discussion +also. + +Generally GLEW is usually released once a year, around the time of the Siggraph +computer graphics conference. If you're not using the current release +version of GLEW, be sure to check if the issue or bug is fixed there. ## Copyright and Licensing GLEW is originally derived from the EXTGL project by Lev Povalahev. -The source code is licensed under the -[Modified BSD License](http://glew.sourceforge.net/glew.txt), the +The source code is licensed under the +[Modified BSD License](http://glew.sourceforge.net/glew.txt), the [Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the [Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT). -The automatic code generation scripts are released under the +The automatic code generation scripts are released under the [GNU GPL](http://glew.sourceforge.net/gpl.txt). diff --git a/src/glew/include/GL/glew.h b/src/glew/include/GL/glew.h index 702265c38b..234591bb59 100644 --- a/src/glew/include/GL/glew.h +++ b/src/glew/include/GL/glew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -93,7 +93,7 @@ #if defined(__REGAL_H__) #error Regal.h included before glew.h #endif -#if defined(__glext_h_) || defined(__GLEXT_H_) +#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) #error glext.h included before glew.h #endif #if defined(__gl_ATI_h_) @@ -109,6 +109,7 @@ #define __X_GL_H #define __glext_h_ #define __GLEXT_H_ +#define __gl_glext_h_ #define __gl_ATI_h_ #if defined(_WIN32) @@ -218,15 +219,26 @@ typedef _W64 int ptrdiff_t; * (mem, 2004-01-04) */ -#include +#if defined(__APPLE__) || defined(__linux__) +# if defined(__cplusplus) +# include +# include +# else +# include +# include +# endif +#else + +# include /* SGI MIPSPro doesn't like stdint.h in C++ mode */ /* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ -#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) -#include -#else -#include +# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) +# include +# else +# include +# endif #endif #define GLEW_APIENTRY_DEFINED @@ -263,6 +275,9 @@ typedef _W64 int ptrdiff_t; #define GLEWAPIENTRY #endif +#define GLEW_VAR_EXPORT GLEWAPI +#define GLEW_FUN_EXPORT GLEWAPI + #ifdef __cplusplus extern "C" { #endif @@ -307,6 +322,8 @@ typedef struct __GLsync *GLsync; typedef char GLchar; +typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */ + #define GL_ZERO 0 #define GL_FALSE 0 #define GL_LOGIC_OP 0x0BF1 @@ -1842,7 +1859,7 @@ typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); @@ -2493,6 +2510,46 @@ typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint locati #endif /* GL_VERSION_4_5 */ +/* ----------------------------- GL_VERSION_4_6 ---------------------------- */ + +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 + +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); + +#define glMultiDrawArraysIndirectCount GLEW_GET_FUN(__glewMultiDrawArraysIndirectCount) +#define glMultiDrawElementsIndirectCount GLEW_GET_FUN(__glewMultiDrawElementsIndirectCount) +#define glSpecializeShader GLEW_GET_FUN(__glewSpecializeShader) + +#define GLEW_VERSION_4_6 GLEW_GET_VAR(__GLEW_VERSION_4_6) + +#endif /* GL_VERSION_4_6 */ + /* -------------------------- GL_3DFX_multisample -------------------------- */ #ifndef GL_3DFX_multisample @@ -2544,6 +2601,31 @@ typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #endif /* GL_AMD_blend_minmax_factor */ +/* --------------------- GL_AMD_compressed_3DC_texture --------------------- */ + +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 + +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA + +#define GLEW_AMD_compressed_3DC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_3DC_texture) + +#endif /* GL_AMD_compressed_3DC_texture */ + +/* --------------------- GL_AMD_compressed_ATC_texture --------------------- */ + +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 + +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 + +#define GLEW_AMD_compressed_ATC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_ATC_texture) + +#endif /* GL_AMD_compressed_ATC_texture */ + /* ----------------------- GL_AMD_conservative_depth ----------------------- */ #ifndef GL_AMD_conservative_depth @@ -2620,6 +2702,52 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GL #endif /* GL_AMD_draw_buffers_blend */ +/* ---------------- GL_AMD_framebuffer_multisample_advanced ---------------- */ + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 + +#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 +#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 +#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 +#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 +#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 +#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 + +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glNamedRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleAdvancedAMD) +#define glRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAdvancedAMD) + +#define GLEW_AMD_framebuffer_multisample_advanced GLEW_GET_VAR(__GLEW_AMD_framebuffer_multisample_advanced) + +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +/* ------------------ GL_AMD_framebuffer_sample_positions ------------------ */ + +#ifndef GL_AMD_framebuffer_sample_positions +#define GL_AMD_framebuffer_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F +#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE +#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF +#define GL_ALL_PIXELS_AMD 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values); + +#define glFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewFramebufferSamplePositionsfvAMD) +#define glGetFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetFramebufferParameterfvAMD) +#define glGetNamedFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetNamedFramebufferParameterfvAMD) +#define glNamedFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewNamedFramebufferSamplePositionsfvAMD) + +#define GLEW_AMD_framebuffer_sample_positions GLEW_GET_VAR(__GLEW_AMD_framebuffer_sample_positions) + +#endif /* GL_AMD_framebuffer_sample_positions */ + /* --------------------------- GL_AMD_gcn_shader --------------------------- */ #ifndef GL_AMD_gcn_shader @@ -2629,6 +2757,77 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GL #endif /* GL_AMD_gcn_shader */ +/* ---------------------- GL_AMD_gpu_shader_half_float --------------------- */ + +#ifndef GL_AMD_gpu_shader_half_float +#define GL_AMD_gpu_shader_half_float 1 + +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD + +#define GLEW_AMD_gpu_shader_half_float GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float) + +#endif /* GL_AMD_gpu_shader_half_float */ + +/* ------------------- GL_AMD_gpu_shader_half_float_fetch ------------------ */ + +#ifndef GL_AMD_gpu_shader_half_float_fetch +#define GL_AMD_gpu_shader_half_float_fetch 1 + +#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE +#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF +#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0 +#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1 +#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2 +#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3 +#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4 +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5 +#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8 +#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9 +#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA +#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB +#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC +#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD +#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF +#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0 +#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1 +#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2 +#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3 +#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4 +#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5 +#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6 +#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7 +#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA + +#define GLEW_AMD_gpu_shader_half_float_fetch GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float_fetch) + +#endif /* GL_AMD_gpu_shader_half_float_fetch */ + +/* ------------------------ GL_AMD_gpu_shader_int16 ------------------------ */ + +#ifndef GL_AMD_gpu_shader_int16 +#define GL_AMD_gpu_shader_int16 1 + +#define GLEW_AMD_gpu_shader_int16 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int16) + +#endif /* GL_AMD_gpu_shader_int16 */ + /* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */ #ifndef GL_AMD_gpu_shader_int64 @@ -2771,6 +2970,17 @@ typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monito #endif /* GL_AMD_pinned_memory */ +/* ----------------------- GL_AMD_program_binary_Z400 ---------------------- */ + +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 + +#define GL_Z400_BINARY_AMD 0x8740 + +#define GLEW_AMD_program_binary_Z400 GLEW_GET_VAR(__GLEW_AMD_program_binary_Z400) + +#endif /* GL_AMD_program_binary_Z400 */ + /* ----------------------- GL_AMD_query_buffer_object ---------------------- */ #ifndef GL_AMD_query_buffer_object @@ -2804,7 +3014,7 @@ typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint i #ifndef GL_AMD_seamless_cubemap_per_texture #define GL_AMD_seamless_cubemap_per_texture 1 -#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F #define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) @@ -2819,6 +3029,33 @@ typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint i #endif /* GL_AMD_shader_atomic_counter_ops */ +/* -------------------------- GL_AMD_shader_ballot ------------------------- */ + +#ifndef GL_AMD_shader_ballot +#define GL_AMD_shader_ballot 1 + +#define GLEW_AMD_shader_ballot GLEW_GET_VAR(__GLEW_AMD_shader_ballot) + +#endif /* GL_AMD_shader_ballot */ + +/* ---------------- GL_AMD_shader_explicit_vertex_parameter ---------------- */ + +#ifndef GL_AMD_shader_explicit_vertex_parameter +#define GL_AMD_shader_explicit_vertex_parameter 1 + +#define GLEW_AMD_shader_explicit_vertex_parameter GLEW_GET_VAR(__GLEW_AMD_shader_explicit_vertex_parameter) + +#endif /* GL_AMD_shader_explicit_vertex_parameter */ + +/* ------------------- GL_AMD_shader_image_load_store_lod ------------------ */ + +#ifndef GL_AMD_shader_image_load_store_lod +#define GL_AMD_shader_image_load_store_lod 1 + +#define GLEW_AMD_shader_image_load_store_lod GLEW_GET_VAR(__GLEW_AMD_shader_image_load_store_lod) + +#endif /* GL_AMD_shader_image_load_store_lod */ + /* ---------------------- GL_AMD_shader_stencil_export --------------------- */ #ifndef GL_AMD_shader_stencil_export @@ -2889,6 +3126,15 @@ typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint valu #endif /* GL_AMD_stencil_operation_extended */ +/* --------------------- GL_AMD_texture_gather_bias_lod -------------------- */ + +#ifndef GL_AMD_texture_gather_bias_lod +#define GL_AMD_texture_gather_bias_lod 1 + +#define GLEW_AMD_texture_gather_bias_lod GLEW_GET_VAR(__GLEW_AMD_texture_gather_bias_lod) + +#endif /* GL_AMD_texture_gather_bias_lod */ + /* ------------------------ GL_AMD_texture_texture4 ------------------------ */ #ifndef GL_AMD_texture_texture4 @@ -2959,6 +3205,15 @@ typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); #endif /* GL_AMD_vertex_shader_viewport_index */ +/* -------------------- GL_ANDROID_extension_pack_es31a -------------------- */ + +#ifndef GL_ANDROID_extension_pack_es31a +#define GL_ANDROID_extension_pack_es31a 1 + +#define GLEW_ANDROID_extension_pack_es31a GLEW_GET_VAR(__GLEW_ANDROID_extension_pack_es31a) + +#endif /* GL_ANDROID_extension_pack_es31a */ + /* ------------------------- GL_ANGLE_depth_texture ------------------------ */ #ifndef GL_ANGLE_depth_texture @@ -3175,6 +3430,47 @@ typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shad #endif /* GL_APPLE_client_storage */ +/* ------------------------- GL_APPLE_clip_distance ------------------------ */ + +#ifndef GL_APPLE_clip_distance +#define GL_APPLE_clip_distance 1 + +#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 +#define GL_CLIP_DISTANCE0_APPLE 0x3000 +#define GL_CLIP_DISTANCE1_APPLE 0x3001 +#define GL_CLIP_DISTANCE2_APPLE 0x3002 +#define GL_CLIP_DISTANCE3_APPLE 0x3003 +#define GL_CLIP_DISTANCE4_APPLE 0x3004 +#define GL_CLIP_DISTANCE5_APPLE 0x3005 +#define GL_CLIP_DISTANCE6_APPLE 0x3006 +#define GL_CLIP_DISTANCE7_APPLE 0x3007 + +#define GLEW_APPLE_clip_distance GLEW_GET_VAR(__GLEW_APPLE_clip_distance) + +#endif /* GL_APPLE_clip_distance */ + +/* ------------------- GL_APPLE_color_buffer_packed_float ------------------ */ + +#ifndef GL_APPLE_color_buffer_packed_float +#define GL_APPLE_color_buffer_packed_float 1 + +#define GLEW_APPLE_color_buffer_packed_float GLEW_GET_VAR(__GLEW_APPLE_color_buffer_packed_float) + +#endif /* GL_APPLE_color_buffer_packed_float */ + +/* ---------------------- GL_APPLE_copy_texture_levels --------------------- */ + +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 + +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); + +#define glCopyTextureLevelsAPPLE GLEW_GET_FUN(__glewCopyTextureLevelsAPPLE) + +#define GLEW_APPLE_copy_texture_levels GLEW_GET_VAR(__GLEW_APPLE_copy_texture_levels) + +#endif /* GL_APPLE_copy_texture_levels */ + /* ------------------------- GL_APPLE_element_array ------------------------ */ #ifndef GL_APPLE_element_array @@ -3272,6 +3568,29 @@ typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, #endif /* GL_APPLE_flush_buffer_range */ +/* -------------------- GL_APPLE_framebuffer_multisample ------------------- */ + +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); + +#define glRenderbufferStorageMultisampleAPPLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAPPLE) +#define glResolveMultisampleFramebufferAPPLE GLEW_GET_FUN(__glewResolveMultisampleFramebufferAPPLE) + +#define GLEW_APPLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_APPLE_framebuffer_multisample) + +#endif /* GL_APPLE_framebuffer_multisample */ + /* ----------------------- GL_APPLE_object_purgeable ----------------------- */ #ifndef GL_APPLE_object_purgeable @@ -3344,6 +3663,94 @@ typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType #endif /* GL_APPLE_specular_vector */ +/* ----------------------------- GL_APPLE_sync ----------------------------- */ + +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCAPPLEPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVAPPLEPROC) (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCAPPLEPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); + +#define glClientWaitSyncAPPLE GLEW_GET_FUN(__glewClientWaitSyncAPPLE) +#define glDeleteSyncAPPLE GLEW_GET_FUN(__glewDeleteSyncAPPLE) +#define glFenceSyncAPPLE GLEW_GET_FUN(__glewFenceSyncAPPLE) +#define glGetInteger64vAPPLE GLEW_GET_FUN(__glewGetInteger64vAPPLE) +#define glGetSyncivAPPLE GLEW_GET_FUN(__glewGetSyncivAPPLE) +#define glIsSyncAPPLE GLEW_GET_FUN(__glewIsSyncAPPLE) +#define glWaitSyncAPPLE GLEW_GET_FUN(__glewWaitSyncAPPLE) + +#define GLEW_APPLE_sync GLEW_GET_VAR(__GLEW_APPLE_sync) + +#endif /* GL_APPLE_sync */ + +/* -------------------- GL_APPLE_texture_2D_limited_npot ------------------- */ + +#ifndef GL_APPLE_texture_2D_limited_npot +#define GL_APPLE_texture_2D_limited_npot 1 + +#define GLEW_APPLE_texture_2D_limited_npot GLEW_GET_VAR(__GLEW_APPLE_texture_2D_limited_npot) + +#endif /* GL_APPLE_texture_2D_limited_npot */ + +/* -------------------- GL_APPLE_texture_format_BGRA8888 ------------------- */ + +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_BGRA8_EXT 0x93A1 + +#define GLEW_APPLE_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_APPLE_texture_format_BGRA8888) + +#endif /* GL_APPLE_texture_format_BGRA8888 */ + +/* ----------------------- GL_APPLE_texture_max_level ---------------------- */ + +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 + +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D + +#define GLEW_APPLE_texture_max_level GLEW_GET_VAR(__GLEW_APPLE_texture_max_level) + +#endif /* GL_APPLE_texture_max_level */ + +/* --------------------- GL_APPLE_texture_packed_float --------------------- */ + +#ifndef GL_APPLE_texture_packed_float +#define GL_APPLE_texture_packed_float 1 + +#define GL_R11F_G11F_B10F_APPLE 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B +#define GL_RGB9_E5_APPLE 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E + +#define GLEW_APPLE_texture_packed_float GLEW_GET_VAR(__GLEW_APPLE_texture_packed_float) + +#endif /* GL_APPLE_texture_packed_float */ + /* ------------------------- GL_APPLE_texture_range ------------------------ */ #ifndef GL_APPLE_texture_range @@ -3672,10 +4079,8 @@ typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GL #define GL_BUFFER_STORAGE_FLAGS 0x8220 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); #define glBufferStorage GLEW_GET_FUN(__glewBufferStorage) -#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) #define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage) @@ -4023,7 +4428,7 @@ typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffe typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value); @@ -4055,10 +4460,10 @@ typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLint typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param); typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params); typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params); @@ -4274,9 +4679,9 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLen #define GL_ARB_draw_elements_base_vertex 1 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex); #define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) #define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) @@ -4663,6 +5068,22 @@ typedef void (GLAPIENTRY * PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint l #endif /* GL_ARB_get_texture_sub_image */ +/* ---------------------------- GL_ARB_gl_spirv ---------------------------- */ + +#ifndef GL_ARB_gl_spirv +#define GL_ARB_gl_spirv 1 + +#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 +#define GL_SPIR_V_BINARY_ARB 0x9552 + +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue); + +#define glSpecializeShaderARB GLEW_GET_FUN(__glewSpecializeShaderARB) + +#define GLEW_ARB_gl_spirv GLEW_GET_VAR(__GLEW_ARB_gl_spirv) + +#endif /* GL_ARB_gl_spirv */ + /* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ #ifndef GL_ARB_gpu_shader5 @@ -5562,6 +5983,21 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GL #endif /* GL_ARB_point_sprite */ +/* ---------------------- GL_ARB_polygon_offset_clamp ---------------------- */ + +#ifndef GL_ARB_polygon_offset_clamp +#define GL_ARB_polygon_offset_clamp 1 + +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); + +#define glPolygonOffsetClamp GLEW_GET_FUN(__glewPolygonOffsetClamp) + +#define GLEW_ARB_polygon_offset_clamp GLEW_GET_VAR(__GLEW_ARB_polygon_offset_clamp) + +#endif /* GL_ARB_polygon_offset_clamp */ + /* ----------------------- GL_ARB_post_depth_coverage ---------------------- */ #ifndef GL_ARB_post_depth_coverage @@ -6543,10 +6979,8 @@ typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLi #define GL_NUM_SPARSE_LEVELS_ARB 0x91AA typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB) -#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) #define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture) @@ -6570,6 +7004,18 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, G #endif /* GL_ARB_sparse_texture_clamp */ +/* ------------------------ GL_ARB_spirv_extensions ------------------------ */ + +#ifndef GL_ARB_spirv_extensions +#define GL_ARB_spirv_extensions 1 + +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +#define GLEW_ARB_spirv_extensions GLEW_GET_VAR(__GLEW_ARB_spirv_extensions) + +#endif /* GL_ARB_spirv_extensions */ + /* ------------------------ GL_ARB_stencil_texturing ----------------------- */ #ifndef GL_ARB_stencil_texturing @@ -6600,7 +7046,7 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, G #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); @@ -6907,6 +7353,18 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_env_dot3 */ +/* ------------------- GL_ARB_texture_filter_anisotropic ------------------- */ + +#ifndef GL_ARB_texture_filter_anisotropic +#define GL_ARB_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF + +#define GLEW_ARB_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_ARB_texture_filter_anisotropic) + +#endif /* GL_ARB_texture_filter_anisotropic */ + /* ---------------------- GL_ARB_texture_filter_minmax --------------------- */ #ifndef GL_ARB_texture_filter_minmax @@ -7135,16 +7593,10 @@ typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsiz typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) #define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) #define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) -#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) -#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) -#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) #define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) @@ -7363,7 +7815,7 @@ typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_INVALID_INDEX 0xFFFFFFFFu typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); @@ -8069,6 +8521,71 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); #endif /* GL_ARB_window_pos */ +/* ----------------------- GL_ARM_mali_program_binary ---------------------- */ + +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 + +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 + +#define GLEW_ARM_mali_program_binary GLEW_GET_VAR(__GLEW_ARM_mali_program_binary) + +#endif /* GL_ARM_mali_program_binary */ + +/* ----------------------- GL_ARM_mali_shader_binary ----------------------- */ + +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 + +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 + +#define GLEW_ARM_mali_shader_binary GLEW_GET_VAR(__GLEW_ARM_mali_shader_binary) + +#endif /* GL_ARM_mali_shader_binary */ + +/* ------------------------------ GL_ARM_rgba8 ----------------------------- */ + +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 + +#define GL_RGBA8_OES 0x8058 + +#define GLEW_ARM_rgba8 GLEW_GET_VAR(__GLEW_ARM_rgba8) + +#endif /* GL_ARM_rgba8 */ + +/* -------------------- GL_ARM_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch +#define GL_ARM_shader_framebuffer_fetch 1 + +#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 +#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 + +#define GLEW_ARM_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch) + +#endif /* GL_ARM_shader_framebuffer_fetch */ + +/* ------------- GL_ARM_shader_framebuffer_fetch_depth_stencil ------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil +#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 + +#define GLEW_ARM_shader_framebuffer_fetch_depth_stencil GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch_depth_stencil) + +#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ + +/* ---------------- GL_ARM_texture_unnormalized_coordinates ---------------- */ + +#ifndef GL_ARM_texture_unnormalized_coordinates +#define GL_ARM_texture_unnormalized_coordinates 1 + +#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A + +#define GLEW_ARM_texture_unnormalized_coordinates GLEW_GET_VAR(__GLEW_ARM_texture_unnormalized_coordinates) + +#endif /* GL_ARM_texture_unnormalized_coordinates */ + /* ------------------------- GL_ATIX_point_sprites ------------------------- */ #ifndef GL_ATIX_point_sprites @@ -8620,6 +9137,30 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_ATI_vertex_streams */ +/* ------------------------- GL_DMP_program_binary ------------------------- */ + +#ifndef GL_DMP_program_binary +#define GL_DMP_program_binary 1 + +#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 +#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 +#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 + +#define GLEW_DMP_program_binary GLEW_GET_VAR(__GLEW_DMP_program_binary) + +#endif /* GL_DMP_program_binary */ + +/* -------------------------- GL_DMP_shader_binary ------------------------- */ + +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 + +#define GL_SHADER_BINARY_DMP 0x9250 + +#define GLEW_DMP_shader_binary GLEW_GET_VAR(__GLEW_DMP_shader_binary) + +#endif /* GL_DMP_shader_binary */ + /* --------------------------- GL_EXT_422_pixels --------------------------- */ #ifndef GL_EXT_422_pixels @@ -8646,6 +9187,59 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_EXT_Cg_shader */ +/* ------------------------- GL_EXT_EGL_image_array ------------------------ */ + +#ifndef GL_EXT_EGL_image_array +#define GL_EXT_EGL_image_array 1 + +#define GLEW_EXT_EGL_image_array GLEW_GET_VAR(__GLEW_EXT_EGL_image_array) + +#endif /* GL_EXT_EGL_image_array */ + +/* ------------------ GL_EXT_EGL_image_external_wrap_modes ----------------- */ + +#ifndef GL_EXT_EGL_image_external_wrap_modes +#define GL_EXT_EGL_image_external_wrap_modes 1 + +#define GLEW_EXT_EGL_image_external_wrap_modes GLEW_GET_VAR(__GLEW_EXT_EGL_image_external_wrap_modes) + +#endif /* GL_EXT_EGL_image_external_wrap_modes */ + +/* ------------------------ GL_EXT_EGL_image_storage ----------------------- */ + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); + +#define glEGLImageTargetTexStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTexStorageEXT) +#define glEGLImageTargetTextureStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTextureStorageEXT) + +#define GLEW_EXT_EGL_image_storage GLEW_GET_VAR(__GLEW_EXT_EGL_image_storage) + +#endif /* GL_EXT_EGL_image_storage */ + +/* ---------------------------- GL_EXT_EGL_sync ---------------------------- */ + +#ifndef GL_EXT_EGL_sync +#define GL_EXT_EGL_sync 1 + +#define GLEW_EXT_EGL_sync GLEW_GET_VAR(__GLEW_EXT_EGL_sync) + +#endif /* GL_EXT_EGL_sync */ + +/* --------------------------- GL_EXT_YUV_target --------------------------- */ + +#ifndef GL_EXT_YUV_target +#define GL_EXT_YUV_target 1 + +#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 + +#define GLEW_EXT_YUV_target GLEW_GET_VAR(__GLEW_EXT_YUV_target) + +#endif /* GL_EXT_YUV_target */ + /* ------------------------------ GL_EXT_abgr ------------------------------ */ #ifndef GL_EXT_abgr @@ -8657,6 +9251,23 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_EXT_abgr */ +/* -------------------------- GL_EXT_base_instance ------------------------- */ + +#ifndef GL_EXT_base_instance +#define GL_EXT_base_instance 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); + +#define glDrawArraysInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseVertexBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstanceEXT) + +#define GLEW_EXT_base_instance GLEW_GET_VAR(__GLEW_EXT_base_instance) + +#endif /* GL_EXT_base_instance */ + /* ------------------------------ GL_EXT_bgra ------------------------------ */ #ifndef GL_EXT_bgra @@ -8728,6 +9339,31 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, G #endif /* GL_EXT_blend_equation_separate */ +/* ----------------------- GL_EXT_blend_func_extended ---------------------- */ + +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 + +#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 +#define GL_SRC1_ALPHA_EXT 0x8589 +#define GL_SRC1_COLOR_EXT 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC +#define GL_LOCATION_INDEX_EXT 0x930F + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar* name); + +#define glBindFragDataLocationIndexedEXT GLEW_GET_FUN(__glewBindFragDataLocationIndexedEXT) +#define glGetFragDataIndexEXT GLEW_GET_FUN(__glewGetFragDataIndexEXT) +#define glGetProgramResourceLocationIndexEXT GLEW_GET_FUN(__glewGetProgramResourceLocationIndexEXT) + +#define GLEW_EXT_blend_func_extended GLEW_GET_VAR(__GLEW_EXT_blend_func_extended) + +#endif /* GL_EXT_blend_func_extended */ + /* ----------------------- GL_EXT_blend_func_separate ---------------------- */ #ifndef GL_EXT_blend_func_separate @@ -8785,6 +9421,87 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #endif /* GL_EXT_blend_subtract */ +/* ------------------------- GL_EXT_buffer_storage ------------------------- */ + +#ifndef GL_EXT_buffer_storage +#define GL_EXT_buffer_storage 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 +#define GL_MAP_COHERENT_BIT_EXT 0x0080 +#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 +#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F +#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); + +#define glBufferStorageEXT GLEW_GET_FUN(__glewBufferStorageEXT) +#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) + +#define GLEW_EXT_buffer_storage GLEW_GET_VAR(__GLEW_EXT_buffer_storage) + +#endif /* GL_EXT_buffer_storage */ + +/* -------------------------- GL_EXT_clear_texture ------------------------- */ + +#ifndef GL_EXT_clear_texture +#define GL_EXT_clear_texture 1 + +typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); + +#define glClearTexImageEXT GLEW_GET_FUN(__glewClearTexImageEXT) +#define glClearTexSubImageEXT GLEW_GET_FUN(__glewClearTexSubImageEXT) + +#define GLEW_EXT_clear_texture GLEW_GET_VAR(__GLEW_EXT_clear_texture) + +#endif /* GL_EXT_clear_texture */ + +/* -------------------------- GL_EXT_clip_control -------------------------- */ + +#ifndef GL_EXT_clip_control +#define GL_EXT_clip_control 1 + +#define GL_LOWER_LEFT_EXT 0x8CA1 +#define GL_UPPER_LEFT_EXT 0x8CA2 +#define GL_CLIP_ORIGIN_EXT 0x935C +#define GL_CLIP_DEPTH_MODE_EXT 0x935D +#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E +#define GL_ZERO_TO_ONE_EXT 0x935F + +typedef void (GLAPIENTRY * PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); + +#define glClipControlEXT GLEW_GET_FUN(__glewClipControlEXT) + +#define GLEW_EXT_clip_control GLEW_GET_VAR(__GLEW_EXT_clip_control) + +#endif /* GL_EXT_clip_control */ + +/* ----------------------- GL_EXT_clip_cull_distance ----------------------- */ + +#ifndef GL_EXT_clip_cull_distance +#define GL_EXT_clip_cull_distance 1 + +#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 +#define GL_CLIP_DISTANCE0_EXT 0x3000 +#define GL_CLIP_DISTANCE1_EXT 0x3001 +#define GL_CLIP_DISTANCE2_EXT 0x3002 +#define GL_CLIP_DISTANCE3_EXT 0x3003 +#define GL_CLIP_DISTANCE4_EXT 0x3004 +#define GL_CLIP_DISTANCE5_EXT 0x3005 +#define GL_CLIP_DISTANCE6_EXT 0x3006 +#define GL_CLIP_DISTANCE7_EXT 0x3007 +#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA + +#define GLEW_EXT_clip_cull_distance GLEW_GET_VAR(__GLEW_EXT_clip_cull_distance) + +#endif /* GL_EXT_clip_cull_distance */ + /* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ #ifndef GL_EXT_clip_volume_hint @@ -8810,6 +9527,31 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #endif /* GL_EXT_cmyka */ +/* ----------------------- GL_EXT_color_buffer_float ----------------------- */ + +#ifndef GL_EXT_color_buffer_float +#define GL_EXT_color_buffer_float 1 + +#define GLEW_EXT_color_buffer_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_float) + +#endif /* GL_EXT_color_buffer_float */ + +/* --------------------- GL_EXT_color_buffer_half_float -------------------- */ + +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 + +#define GLEW_EXT_color_buffer_half_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_half_float) + +#endif /* GL_EXT_color_buffer_half_float */ + /* ------------------------- GL_EXT_color_subtable ------------------------- */ #ifndef GL_EXT_color_subtable @@ -8843,6 +9585,24 @@ typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); #endif /* GL_EXT_compiled_vertex_array */ +/* ---------------- GL_EXT_compressed_ETC1_RGB8_sub_texture ---------------- */ + +#ifndef GL_EXT_compressed_ETC1_RGB8_sub_texture +#define GL_EXT_compressed_ETC1_RGB8_sub_texture 1 + +#define GLEW_EXT_compressed_ETC1_RGB8_sub_texture GLEW_GET_VAR(__GLEW_EXT_compressed_ETC1_RGB8_sub_texture) + +#endif /* GL_EXT_compressed_ETC1_RGB8_sub_texture */ + +/* ----------------------- GL_EXT_conservative_depth ----------------------- */ + +#ifndef GL_EXT_conservative_depth +#define GL_EXT_conservative_depth 1 + +#define GLEW_EXT_conservative_depth GLEW_GET_VAR(__GLEW_EXT_conservative_depth) + +#endif /* GL_EXT_conservative_depth */ + /* --------------------------- GL_EXT_convolution -------------------------- */ #ifndef GL_EXT_convolution @@ -8931,6 +9691,19 @@ typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei str #endif /* GL_EXT_coordinate_frame */ +/* --------------------------- GL_EXT_copy_image --------------------------- */ + +#ifndef GL_EXT_copy_image +#define GL_EXT_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); + +#define glCopyImageSubDataEXT GLEW_GET_FUN(__glewCopyImageSubDataEXT) + +#define GLEW_EXT_copy_image GLEW_GET_VAR(__GLEW_EXT_copy_image) + +#endif /* GL_EXT_copy_image */ + /* -------------------------- GL_EXT_copy_texture -------------------------- */ #ifndef GL_EXT_copy_texture @@ -9026,6 +9799,17 @@ typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zma #endif /* GL_EXT_depth_bounds_test */ +/* --------------------------- GL_EXT_depth_clamp -------------------------- */ + +#ifndef GL_EXT_depth_clamp +#define GL_EXT_depth_clamp 1 + +#define GL_DEPTH_CLAMP_EXT 0x864F + +#define GLEW_EXT_depth_clamp GLEW_GET_VAR(__GLEW_EXT_depth_clamp) + +#endif /* GL_EXT_depth_clamp */ + /* ----------------------- GL_EXT_direct_state_access ---------------------- */ #ifndef GL_EXT_direct_state_access @@ -9469,6 +10253,110 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, G #endif /* GL_EXT_direct_state_access */ +/* ----------------------- GL_EXT_discard_framebuffer ---------------------- */ + +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 + +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 + +typedef void (GLAPIENTRY * PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); + +#define glDiscardFramebufferEXT GLEW_GET_FUN(__glewDiscardFramebufferEXT) + +#define GLEW_EXT_discard_framebuffer GLEW_GET_VAR(__GLEW_EXT_discard_framebuffer) + +#endif /* GL_EXT_discard_framebuffer */ + +/* ---------------------- GL_EXT_disjoint_timer_query ---------------------- */ + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 + +#define GL_QUERY_COUNTER_BITS_EXT 0x8864 +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_TIME_ELAPSED_EXT 0x88BF +#define GL_TIMESTAMP_EXT 0x8E28 +#define GL_GPU_DISJOINT_EXT 0x8FBB + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64* data); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); + +#define glBeginQueryEXT GLEW_GET_FUN(__glewBeginQueryEXT) +#define glDeleteQueriesEXT GLEW_GET_FUN(__glewDeleteQueriesEXT) +#define glEndQueryEXT GLEW_GET_FUN(__glewEndQueryEXT) +#define glGenQueriesEXT GLEW_GET_FUN(__glewGenQueriesEXT) +#define glGetInteger64vEXT GLEW_GET_FUN(__glewGetInteger64vEXT) +#define glGetQueryObjectivEXT GLEW_GET_FUN(__glewGetQueryObjectivEXT) +#define glGetQueryObjectuivEXT GLEW_GET_FUN(__glewGetQueryObjectuivEXT) +#define glGetQueryivEXT GLEW_GET_FUN(__glewGetQueryivEXT) +#define glIsQueryEXT GLEW_GET_FUN(__glewIsQueryEXT) +#define glQueryCounterEXT GLEW_GET_FUN(__glewQueryCounterEXT) + +#define GLEW_EXT_disjoint_timer_query GLEW_GET_VAR(__GLEW_EXT_disjoint_timer_query) + +#endif /* GL_EXT_disjoint_timer_query */ + +/* -------------------------- GL_EXT_draw_buffers -------------------------- */ + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 +#define GL_DRAW_BUFFER0_EXT 0x8825 +#define GL_DRAW_BUFFER1_EXT 0x8826 +#define GL_DRAW_BUFFER2_EXT 0x8827 +#define GL_DRAW_BUFFER3_EXT 0x8828 +#define GL_DRAW_BUFFER4_EXT 0x8829 +#define GL_DRAW_BUFFER5_EXT 0x882A +#define GL_DRAW_BUFFER6_EXT 0x882B +#define GL_DRAW_BUFFER7_EXT 0x882C +#define GL_DRAW_BUFFER8_EXT 0x882D +#define GL_DRAW_BUFFER9_EXT 0x882E +#define GL_DRAW_BUFFER10_EXT 0x882F +#define GL_DRAW_BUFFER11_EXT 0x8830 +#define GL_DRAW_BUFFER12_EXT 0x8831 +#define GL_DRAW_BUFFER13_EXT 0x8832 +#define GL_DRAW_BUFFER14_EXT 0x8833 +#define GL_DRAW_BUFFER15_EXT 0x8834 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersEXT GLEW_GET_FUN(__glewDrawBuffersEXT) + +#define GLEW_EXT_draw_buffers GLEW_GET_VAR(__GLEW_EXT_draw_buffers) + +#endif /* GL_EXT_draw_buffers */ + /* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ #ifndef GL_EXT_draw_buffers2 @@ -9492,6 +10380,52 @@ typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GL #endif /* GL_EXT_draw_buffers2 */ +/* ---------------------- GL_EXT_draw_buffers_indexed ---------------------- */ + +#ifndef GL_EXT_draw_buffers_indexed +#define GL_EXT_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiEXT GLEW_GET_FUN(__glewBlendEquationSeparateiEXT) +#define glBlendEquationiEXT GLEW_GET_FUN(__glewBlendEquationiEXT) +#define glBlendFuncSeparateiEXT GLEW_GET_FUN(__glewBlendFuncSeparateiEXT) +#define glBlendFunciEXT GLEW_GET_FUN(__glewBlendFunciEXT) +#define glColorMaskiEXT GLEW_GET_FUN(__glewColorMaskiEXT) +#define glDisableiEXT GLEW_GET_FUN(__glewDisableiEXT) +#define glEnableiEXT GLEW_GET_FUN(__glewEnableiEXT) +#define glIsEnablediEXT GLEW_GET_FUN(__glewIsEnablediEXT) + +#define GLEW_EXT_draw_buffers_indexed GLEW_GET_VAR(__GLEW_EXT_draw_buffers_indexed) + +#endif /* GL_EXT_draw_buffers_indexed */ + +/* -------------------- GL_EXT_draw_elements_base_vertex ------------------- */ + +#ifndef GL_EXT_draw_elements_base_vertex +#define GL_EXT_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex); + +#define glDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsBaseVertexEXT) +#define glDrawElementsInstancedBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexEXT) +#define glDrawRangeElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawRangeElementsBaseVertexEXT) +#define glMultiDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewMultiDrawElementsBaseVertexEXT) + +#define GLEW_EXT_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_EXT_draw_elements_base_vertex) + +#endif /* GL_EXT_draw_elements_base_vertex */ + /* ------------------------- GL_EXT_draw_instanced ------------------------- */ #ifndef GL_EXT_draw_instanced @@ -9523,6 +10457,47 @@ typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint s #endif /* GL_EXT_draw_range_elements */ +/* --------------------- GL_EXT_draw_transform_feedback -------------------- */ + +#ifndef GL_EXT_draw_transform_feedback +#define GL_EXT_draw_transform_feedback 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); + +#define glDrawTransformFeedbackEXT GLEW_GET_FUN(__glewDrawTransformFeedbackEXT) +#define glDrawTransformFeedbackInstancedEXT GLEW_GET_FUN(__glewDrawTransformFeedbackInstancedEXT) + +#define GLEW_EXT_draw_transform_feedback GLEW_GET_VAR(__GLEW_EXT_draw_transform_feedback) + +#endif /* GL_EXT_draw_transform_feedback */ + +/* ------------------------- GL_EXT_external_buffer ------------------------ */ + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 + +typedef void* GLeglClientBufferEXT; + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); + +#define glBufferStorageExternalEXT GLEW_GET_FUN(__glewBufferStorageExternalEXT) +#define glNamedBufferStorageExternalEXT GLEW_GET_FUN(__glewNamedBufferStorageExternalEXT) + +#define GLEW_EXT_external_buffer GLEW_GET_VAR(__GLEW_EXT_external_buffer) + +#endif /* GL_EXT_external_buffer */ + +/* --------------------------- GL_EXT_float_blend -------------------------- */ + +#ifndef GL_EXT_float_blend +#define GL_EXT_float_blend 1 + +#define GLEW_EXT_float_blend GLEW_GET_VAR(__GLEW_EXT_float_blend) + +#endif /* GL_EXT_float_blend */ + /* ---------------------------- GL_EXT_fog_coord --------------------------- */ #ifndef GL_EXT_fog_coord @@ -9553,6 +10528,15 @@ typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); #endif /* GL_EXT_fog_coord */ +/* --------------------------- GL_EXT_frag_depth --------------------------- */ + +#ifndef GL_EXT_frag_depth +#define GL_EXT_frag_depth 1 + +#define GLEW_EXT_frag_depth GLEW_GET_VAR(__GLEW_EXT_frag_depth) + +#endif /* GL_EXT_frag_depth */ + /* ------------------------ GL_EXT_fragment_lighting ----------------------- */ #ifndef GL_EXT_fragment_lighting @@ -9771,6 +10755,92 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLen #endif /* GL_EXT_framebuffer_sRGB */ +/* ----------------------- GL_EXT_geometry_point_size ---------------------- */ + +#ifndef GL_EXT_geometry_point_size +#define GL_EXT_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_point_size GLEW_GET_VAR(__GLEW_EXT_geometry_point_size) + +#endif /* GL_EXT_geometry_point_size */ + +/* ------------------------- GL_EXT_geometry_shader ------------------------ */ + +#ifndef GL_EXT_geometry_shader +#define GL_EXT_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_shader GLEW_GET_VAR(__GLEW_EXT_geometry_shader) + +#endif /* GL_EXT_geometry_shader */ + /* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ #ifndef GL_EXT_geometry_shader4 @@ -9930,6 +11000,15 @@ typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLin #endif /* GL_EXT_gpu_shader4 */ +/* --------------------------- GL_EXT_gpu_shader5 -------------------------- */ + +#ifndef GL_EXT_gpu_shader5 +#define GL_EXT_gpu_shader5 1 + +#define GLEW_EXT_gpu_shader5 GLEW_GET_VAR(__GLEW_EXT_gpu_shader5) + +#endif /* GL_EXT_gpu_shader5 */ + /* ---------------------------- GL_EXT_histogram --------------------------- */ #ifndef GL_EXT_histogram @@ -10019,6 +11098,21 @@ typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode) #endif /* GL_EXT_index_texture */ +/* ------------------------ GL_EXT_instanced_arrays ------------------------ */ + +#ifndef GL_EXT_instanced_arrays +#define GL_EXT_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexAttribDivisorEXT) + +#define GLEW_EXT_instanced_arrays GLEW_GET_VAR(__GLEW_EXT_instanced_arrays) + +#endif /* GL_EXT_instanced_arrays */ + /* -------------------------- GL_EXT_light_texture ------------------------- */ #ifndef GL_EXT_light_texture @@ -10046,6 +11140,131 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mod #endif /* GL_EXT_light_texture */ +/* ------------------------ GL_EXT_map_buffer_range ------------------------ */ + +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 + +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedBufferRangeEXT) +#define glMapBufferRangeEXT GLEW_GET_FUN(__glewMapBufferRangeEXT) + +#define GLEW_EXT_map_buffer_range GLEW_GET_VAR(__GLEW_EXT_map_buffer_range) + +#endif /* GL_EXT_map_buffer_range */ + +/* -------------------------- GL_EXT_memory_object ------------------------- */ + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 + +#define GL_UUID_SIZE_EXT 16 +#define GL_TEXTURE_TILING_EXT 0x9580 +#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 +#define GL_NUM_TILING_TYPES_EXT 0x9582 +#define GL_TILING_TYPES_EXT 0x9583 +#define GL_OPTIMAL_TILING_EXT 0x9584 +#define GL_LINEAR_TILING_EXT 0x9585 +#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 +#define GL_DEVICE_UUID_EXT 0x9597 +#define GL_DRIVER_UUID_EXT 0x9598 +#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte* data); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte* data); +typedef GLboolean (GLAPIENTRY * PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); +typedef void (GLAPIENTRY * PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); + +#define glBufferStorageMemEXT GLEW_GET_FUN(__glewBufferStorageMemEXT) +#define glCreateMemoryObjectsEXT GLEW_GET_FUN(__glewCreateMemoryObjectsEXT) +#define glDeleteMemoryObjectsEXT GLEW_GET_FUN(__glewDeleteMemoryObjectsEXT) +#define glGetMemoryObjectParameterivEXT GLEW_GET_FUN(__glewGetMemoryObjectParameterivEXT) +#define glGetUnsignedBytei_vEXT GLEW_GET_FUN(__glewGetUnsignedBytei_vEXT) +#define glGetUnsignedBytevEXT GLEW_GET_FUN(__glewGetUnsignedBytevEXT) +#define glIsMemoryObjectEXT GLEW_GET_FUN(__glewIsMemoryObjectEXT) +#define glMemoryObjectParameterivEXT GLEW_GET_FUN(__glewMemoryObjectParameterivEXT) +#define glNamedBufferStorageMemEXT GLEW_GET_FUN(__glewNamedBufferStorageMemEXT) +#define glTexStorageMem1DEXT GLEW_GET_FUN(__glewTexStorageMem1DEXT) +#define glTexStorageMem2DEXT GLEW_GET_FUN(__glewTexStorageMem2DEXT) +#define glTexStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem2DMultisampleEXT) +#define glTexStorageMem3DEXT GLEW_GET_FUN(__glewTexStorageMem3DEXT) +#define glTexStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem3DMultisampleEXT) +#define glTextureStorageMem1DEXT GLEW_GET_FUN(__glewTextureStorageMem1DEXT) +#define glTextureStorageMem2DEXT GLEW_GET_FUN(__glewTextureStorageMem2DEXT) +#define glTextureStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem2DMultisampleEXT) +#define glTextureStorageMem3DEXT GLEW_GET_FUN(__glewTextureStorageMem3DEXT) +#define glTextureStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem3DMultisampleEXT) + +#define GLEW_EXT_memory_object GLEW_GET_VAR(__GLEW_EXT_memory_object) + +#endif /* GL_EXT_memory_object */ + +/* ------------------------ GL_EXT_memory_object_fd ------------------------ */ + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 + +#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); + +#define glImportMemoryFdEXT GLEW_GET_FUN(__glewImportMemoryFdEXT) + +#define GLEW_EXT_memory_object_fd GLEW_GET_VAR(__GLEW_EXT_memory_object_fd) + +#endif /* GL_EXT_memory_object_fd */ + +/* ----------------------- GL_EXT_memory_object_win32 ---------------------- */ + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 + +#define GL_LUID_SIZE_EXT 8 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 +#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 +#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A +#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B +#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C +#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 +#define GL_D3D12_FENCE_VALUE_EXT 0x9595 +#define GL_DEVICE_LUID_EXT 0x9599 +#define GL_DEVICE_NODE_MASK_EXT 0x959A + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); + +#define glImportMemoryWin32HandleEXT GLEW_GET_FUN(__glewImportMemoryWin32HandleEXT) +#define glImportMemoryWin32NameEXT GLEW_GET_FUN(__glewImportMemoryWin32NameEXT) + +#define GLEW_EXT_memory_object_win32 GLEW_GET_VAR(__GLEW_EXT_memory_object_win32) + +#endif /* GL_EXT_memory_object_win32 */ + /* ------------------------- GL_EXT_misc_attribute ------------------------- */ #ifndef GL_EXT_misc_attribute @@ -10070,6 +11289,30 @@ typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* #endif /* GL_EXT_multi_draw_arrays */ +/* ----------------------- GL_EXT_multi_draw_indirect ---------------------- */ + +#ifndef GL_EXT_multi_draw_indirect +#define GL_EXT_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); + +#define glMultiDrawArraysIndirectEXT GLEW_GET_FUN(__glewMultiDrawArraysIndirectEXT) +#define glMultiDrawElementsIndirectEXT GLEW_GET_FUN(__glewMultiDrawElementsIndirectEXT) + +#define GLEW_EXT_multi_draw_indirect GLEW_GET_VAR(__GLEW_EXT_multi_draw_indirect) + +#endif /* GL_EXT_multi_draw_indirect */ + +/* ------------------------ GL_EXT_multiple_textures ----------------------- */ + +#ifndef GL_EXT_multiple_textures +#define GL_EXT_multiple_textures 1 + +#define GLEW_EXT_multiple_textures GLEW_GET_VAR(__GLEW_EXT_multiple_textures) + +#endif /* GL_EXT_multiple_textures */ + /* --------------------------- GL_EXT_multisample -------------------------- */ #ifndef GL_EXT_multisample @@ -10103,6 +11346,110 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); #endif /* GL_EXT_multisample */ +/* -------------------- GL_EXT_multisample_compatibility ------------------- */ + +#ifndef GL_EXT_multisample_compatibility +#define GL_EXT_multisample_compatibility 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F + +#define GLEW_EXT_multisample_compatibility GLEW_GET_VAR(__GLEW_EXT_multisample_compatibility) + +#endif /* GL_EXT_multisample_compatibility */ + +/* ----------------- GL_EXT_multisampled_render_to_texture ----------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); + +#define glFramebufferTexture2DMultisampleEXT GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleEXT) + +#define GLEW_EXT_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture) + +#endif /* GL_EXT_multisampled_render_to_texture */ + +/* ----------------- GL_EXT_multisampled_render_to_texture2 ---------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture2 +#define GL_EXT_multisampled_render_to_texture2 1 + +#define GLEW_EXT_multisampled_render_to_texture2 GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture2) + +#endif /* GL_EXT_multisampled_render_to_texture2 */ + +/* --------------------- GL_EXT_multiview_draw_buffers --------------------- */ + +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 + +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum* location, const GLint *indices); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint* data); +typedef void (GLAPIENTRY * PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); + +#define glDrawBuffersIndexedEXT GLEW_GET_FUN(__glewDrawBuffersIndexedEXT) +#define glGetIntegeri_vEXT GLEW_GET_FUN(__glewGetIntegeri_vEXT) +#define glReadBufferIndexedEXT GLEW_GET_FUN(__glewReadBufferIndexedEXT) + +#define GLEW_EXT_multiview_draw_buffers GLEW_GET_VAR(__GLEW_EXT_multiview_draw_buffers) + +#endif /* GL_EXT_multiview_draw_buffers */ + +/* ------------- GL_EXT_multiview_tessellation_geometry_shader ------------- */ + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 + +#define GLEW_EXT_multiview_tessellation_geometry_shader GLEW_GET_VAR(__GLEW_EXT_multiview_tessellation_geometry_shader) + +#endif /* GL_EXT_multiview_tessellation_geometry_shader */ + +/* ------------------ GL_EXT_multiview_texture_multisample ----------------- */ + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 + +#define GLEW_EXT_multiview_texture_multisample GLEW_GET_VAR(__GLEW_EXT_multiview_texture_multisample) + +#endif /* GL_EXT_multiview_texture_multisample */ + +/* ---------------------- GL_EXT_multiview_timer_query --------------------- */ + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 + +#define GLEW_EXT_multiview_timer_query GLEW_GET_VAR(__GLEW_EXT_multiview_timer_query) + +#endif /* GL_EXT_multiview_timer_query */ + +/* --------------------- GL_EXT_occlusion_query_boolean -------------------- */ + +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 + +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A + +#define GLEW_EXT_occlusion_query_boolean GLEW_GET_VAR(__GLEW_EXT_occlusion_query_boolean) + +#endif /* GL_EXT_occlusion_query_boolean */ + /* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ #ifndef GL_EXT_packed_depth_stencil @@ -10303,6 +11650,33 @@ typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfl #endif /* GL_EXT_post_depth_coverage */ +/* --------------------- GL_EXT_primitive_bounding_box --------------------- */ + +#ifndef GL_EXT_primitive_bounding_box +#define GL_EXT_primitive_bounding_box 1 + +#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE + +typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); + +#define glPrimitiveBoundingBoxEXT GLEW_GET_FUN(__glewPrimitiveBoundingBoxEXT) + +#define GLEW_EXT_primitive_bounding_box GLEW_GET_VAR(__GLEW_EXT_primitive_bounding_box) + +#endif /* GL_EXT_primitive_bounding_box */ + +/* ----------------------- GL_EXT_protected_textures ----------------------- */ + +#ifndef GL_EXT_protected_textures +#define GL_EXT_protected_textures 1 + +#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 +#define GL_TEXTURE_PROTECTED_EXT 0x8BFA + +#define GLEW_EXT_protected_textures GLEW_GET_VAR(__GLEW_EXT_protected_textures) + +#endif /* GL_EXT_protected_textures */ + /* ------------------------ GL_EXT_provoking_vertex ------------------------ */ #ifndef GL_EXT_provoking_vertex @@ -10321,6 +11695,20 @@ typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); #endif /* GL_EXT_provoking_vertex */ +/* --------------------------- GL_EXT_pvrtc_sRGB --------------------------- */ + +#ifndef GL_EXT_pvrtc_sRGB +#define GL_EXT_pvrtc_sRGB 1 + +#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 +#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 + +#define GLEW_EXT_pvrtc_sRGB GLEW_GET_VAR(__GLEW_EXT_pvrtc_sRGB) + +#endif /* GL_EXT_pvrtc_sRGB */ + /* ----------------------- GL_EXT_raster_multisample ----------------------- */ #ifndef GL_EXT_raster_multisample @@ -10355,6 +11743,37 @@ typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean #endif /* GL_EXT_raster_multisample */ +/* ------------------------ GL_EXT_read_format_bgra ------------------------ */ + +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 + +#define GLEW_EXT_read_format_bgra GLEW_GET_VAR(__GLEW_EXT_read_format_bgra) + +#endif /* GL_EXT_read_format_bgra */ + +/* -------------------------- GL_EXT_render_snorm -------------------------- */ + +#ifndef GL_EXT_render_snorm +#define GL_EXT_render_snorm 1 + +#define GL_BYTE 0x1400 +#define GL_SHORT 0x1402 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_render_snorm GLEW_GET_VAR(__GLEW_EXT_render_snorm) + +#endif /* GL_EXT_render_snorm */ + /* ------------------------- GL_EXT_rescale_normal ------------------------- */ #ifndef GL_EXT_rescale_normal @@ -10366,6 +11785,56 @@ typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean #endif /* GL_EXT_rescale_normal */ +/* --------------------------- GL_EXT_robustness --------------------------- */ + +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 + +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 + +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); + +#define glGetnUniformfvEXT GLEW_GET_FUN(__glewGetnUniformfvEXT) +#define glGetnUniformivEXT GLEW_GET_FUN(__glewGetnUniformivEXT) +#define glReadnPixelsEXT GLEW_GET_FUN(__glewReadnPixelsEXT) + +#define GLEW_EXT_robustness GLEW_GET_VAR(__GLEW_EXT_robustness) + +#endif /* GL_EXT_robustness */ + +/* ------------------------------ GL_EXT_sRGB ------------------------------ */ + +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 + +#define GLEW_EXT_sRGB GLEW_GET_VAR(__GLEW_EXT_sRGB) + +#endif /* GL_EXT_sRGB */ + +/* ----------------------- GL_EXT_sRGB_write_control ----------------------- */ + +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 + +#define GLEW_EXT_sRGB_write_control GLEW_GET_VAR(__GLEW_EXT_sRGB_write_control) + +#endif /* GL_EXT_sRGB_write_control */ + /* -------------------------- GL_EXT_scene_marker -------------------------- */ #ifndef GL_EXT_scene_marker @@ -10434,6 +11903,69 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenu #endif /* GL_EXT_secondary_color */ +/* ---------------------------- GL_EXT_semaphore --------------------------- */ + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 + +#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 +#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 +#define GL_LAYOUT_GENERAL_EXT 0x958D +#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E +#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F +#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 +#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 +#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 +#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 + +typedef void (GLAPIENTRY * PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); +typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64* params); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); + +#define glDeleteSemaphoresEXT GLEW_GET_FUN(__glewDeleteSemaphoresEXT) +#define glGenSemaphoresEXT GLEW_GET_FUN(__glewGenSemaphoresEXT) +#define glGetSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewGetSemaphoreParameterui64vEXT) +#define glIsSemaphoreEXT GLEW_GET_FUN(__glewIsSemaphoreEXT) +#define glSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewSemaphoreParameterui64vEXT) +#define glSignalSemaphoreEXT GLEW_GET_FUN(__glewSignalSemaphoreEXT) +#define glWaitSemaphoreEXT GLEW_GET_FUN(__glewWaitSemaphoreEXT) + +#define GLEW_EXT_semaphore GLEW_GET_VAR(__GLEW_EXT_semaphore) + +#endif /* GL_EXT_semaphore */ + +/* -------------------------- GL_EXT_semaphore_fd -------------------------- */ + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); + +#define glImportSemaphoreFdEXT GLEW_GET_FUN(__glewImportSemaphoreFdEXT) + +#define GLEW_EXT_semaphore_fd GLEW_GET_VAR(__GLEW_EXT_semaphore_fd) + +#endif /* GL_EXT_semaphore_fd */ + +/* ------------------------- GL_EXT_semaphore_win32 ------------------------ */ + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); + +#define glImportSemaphoreWin32HandleEXT GLEW_GET_FUN(__glewImportSemaphoreWin32HandleEXT) +#define glImportSemaphoreWin32NameEXT GLEW_GET_FUN(__glewImportSemaphoreWin32NameEXT) + +#define GLEW_EXT_semaphore_win32 GLEW_GET_VAR(__GLEW_EXT_semaphore_win32) + +#endif /* GL_EXT_semaphore_win32 */ + /* --------------------- GL_EXT_separate_shader_objects -------------------- */ #ifndef GL_EXT_separate_shader_objects @@ -10466,6 +11998,41 @@ typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint pr #endif /* GL_EXT_separate_specular_color */ +/* -------------------- GL_EXT_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); + +#define glFramebufferFetchBarrierEXT GLEW_GET_FUN(__glewFramebufferFetchBarrierEXT) + +#define GLEW_EXT_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch) + +#endif /* GL_EXT_shader_framebuffer_fetch */ + +/* -------------- GL_EXT_shader_framebuffer_fetch_non_coherent ------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +#define GLEW_EXT_shader_framebuffer_fetch_non_coherent GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch_non_coherent) + +#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ + +/* ------------------------ GL_EXT_shader_group_vote ----------------------- */ + +#ifndef GL_EXT_shader_group_vote +#define GL_EXT_shader_group_vote 1 + +#define GLEW_EXT_shader_group_vote GLEW_GET_VAR(__GLEW_EXT_shader_group_vote) + +#endif /* GL_EXT_shader_group_vote */ + /* ------------------- GL_EXT_shader_image_load_formatted ------------------ */ #ifndef GL_EXT_shader_image_load_formatted @@ -10546,6 +12113,15 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shader_image_load_store */ +/* ------------------- GL_EXT_shader_implicit_conversions ------------------ */ + +#ifndef GL_EXT_shader_implicit_conversions +#define GL_EXT_shader_implicit_conversions 1 + +#define GLEW_EXT_shader_implicit_conversions GLEW_GET_VAR(__GLEW_EXT_shader_implicit_conversions) + +#endif /* GL_EXT_shader_implicit_conversions */ + /* ----------------------- GL_EXT_shader_integer_mix ----------------------- */ #ifndef GL_EXT_shader_integer_mix @@ -10555,6 +12131,67 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shader_integer_mix */ +/* ------------------------ GL_EXT_shader_io_blocks ------------------------ */ + +#ifndef GL_EXT_shader_io_blocks +#define GL_EXT_shader_io_blocks 1 + +#define GLEW_EXT_shader_io_blocks GLEW_GET_VAR(__GLEW_EXT_shader_io_blocks) + +#endif /* GL_EXT_shader_io_blocks */ + +/* ------------- GL_EXT_shader_non_constant_global_initializers ------------ */ + +#ifndef GL_EXT_shader_non_constant_global_initializers +#define GL_EXT_shader_non_constant_global_initializers 1 + +#define GLEW_EXT_shader_non_constant_global_initializers GLEW_GET_VAR(__GLEW_EXT_shader_non_constant_global_initializers) + +#endif /* GL_EXT_shader_non_constant_global_initializers */ + +/* ------------------- GL_EXT_shader_pixel_local_storage ------------------- */ + +#ifndef GL_EXT_shader_pixel_local_storage +#define GL_EXT_shader_pixel_local_storage 1 + +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 +#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 + +#define GLEW_EXT_shader_pixel_local_storage GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage) + +#endif /* GL_EXT_shader_pixel_local_storage */ + +/* ------------------- GL_EXT_shader_pixel_local_storage2 ------------------ */ + +#ifndef GL_EXT_shader_pixel_local_storage2 +#define GL_EXT_shader_pixel_local_storage2 1 + +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 +#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 + +typedef void (GLAPIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint* values); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); +typedef GLsizei (GLAPIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); + +#define glClearPixelLocalStorageuiEXT GLEW_GET_FUN(__glewClearPixelLocalStorageuiEXT) +#define glFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewFramebufferPixelLocalStorageSizeEXT) +#define glGetFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewGetFramebufferPixelLocalStorageSizeEXT) + +#define GLEW_EXT_shader_pixel_local_storage2 GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage2) + +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +/* ----------------------- GL_EXT_shader_texture_lod ----------------------- */ + +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 + +#define GLEW_EXT_shader_texture_lod GLEW_GET_VAR(__GLEW_EXT_shader_texture_lod) + +#endif /* GL_EXT_shader_texture_lod */ + /* -------------------------- GL_EXT_shadow_funcs -------------------------- */ #ifndef GL_EXT_shadow_funcs @@ -10564,6 +12201,20 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shadow_funcs */ +/* ------------------------- GL_EXT_shadow_samplers ------------------------ */ + +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 + +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 + +#define GLEW_EXT_shadow_samplers GLEW_GET_VAR(__GLEW_EXT_shadow_samplers) + +#endif /* GL_EXT_shadow_samplers */ + /* --------------------- GL_EXT_shared_texture_palette --------------------- */ #ifndef GL_EXT_shared_texture_palette @@ -10575,6 +12226,38 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shared_texture_palette */ +/* ------------------------- GL_EXT_sparse_texture ------------------------- */ + +#ifndef GL_EXT_sparse_texture +#define GL_EXT_sparse_texture 1 + +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A +#define GL_TEXTURE_SPARSE_EXT 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 +#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 +#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA + +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); + +#define glTexPageCommitmentEXT GLEW_GET_FUN(__glewTexPageCommitmentEXT) +#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) + +#define GLEW_EXT_sparse_texture GLEW_GET_VAR(__GLEW_EXT_sparse_texture) + +#endif /* GL_EXT_sparse_texture */ + /* ------------------------- GL_EXT_sparse_texture2 ------------------------ */ #ifndef GL_EXT_sparse_texture2 @@ -10584,6 +12267,15 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_sparse_texture2 */ +/* ----------------------- GL_EXT_static_vertex_array ---------------------- */ + +#ifndef GL_EXT_static_vertex_array +#define GL_EXT_static_vertex_array 1 + +#define GLEW_EXT_static_vertex_array GLEW_GET_VAR(__GLEW_EXT_static_vertex_array) + +#endif /* GL_EXT_static_vertex_array */ + /* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ #ifndef GL_EXT_stencil_clear_tag @@ -10641,6 +12333,116 @@ typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint leve #endif /* GL_EXT_subtexture */ +/* --------------------- GL_EXT_tessellation_point_size -------------------- */ + +#ifndef GL_EXT_tessellation_point_size +#define GL_EXT_tessellation_point_size 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); + +#define glPatchParameteriEXT GLEW_GET_FUN(__glewPatchParameteriEXT) + +#define GLEW_EXT_tessellation_point_size GLEW_GET_VAR(__GLEW_EXT_tessellation_point_size) + +#endif /* GL_EXT_tessellation_point_size */ + +/* ----------------------- GL_EXT_tessellation_shader ---------------------- */ + +#ifndef GL_EXT_tessellation_shader +#define GL_EXT_tessellation_shader 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +#define GLEW_EXT_tessellation_shader GLEW_GET_VAR(__GLEW_EXT_tessellation_shader) + +#endif /* GL_EXT_tessellation_shader */ + /* ----------------------------- GL_EXT_texture ---------------------------- */ #ifndef GL_EXT_texture @@ -10738,6 +12540,52 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, #endif /* GL_EXT_texture_array */ +/* ---------------------- GL_EXT_texture_border_clamp ---------------------- */ + +#ifndef GL_EXT_texture_border_clamp +#define GL_EXT_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 +#define GL_CLAMP_TO_BORDER_EXT 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivEXT GLEW_GET_FUN(__glewGetSamplerParameterIivEXT) +#define glGetSamplerParameterIuivEXT GLEW_GET_FUN(__glewGetSamplerParameterIuivEXT) +#define glSamplerParameterIivEXT GLEW_GET_FUN(__glewSamplerParameterIivEXT) +#define glSamplerParameterIuivEXT GLEW_GET_FUN(__glewSamplerParameterIuivEXT) + +#define GLEW_EXT_texture_border_clamp GLEW_GET_VAR(__GLEW_EXT_texture_border_clamp) + +#endif /* GL_EXT_texture_border_clamp */ + +/* ------------------------- GL_EXT_texture_buffer ------------------------- */ + +#ifndef GL_EXT_texture_buffer +#define GL_EXT_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D +#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F + +#define GLEW_EXT_texture_buffer GLEW_GET_VAR(__GLEW_EXT_texture_buffer) + +#endif /* GL_EXT_texture_buffer */ + /* ---------------------- GL_EXT_texture_buffer_object --------------------- */ #ifndef GL_EXT_texture_buffer_object @@ -10757,6 +12605,42 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_buffer_object */ +/* -------------- GL_EXT_texture_compression_astc_decode_mode -------------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode +#define GL_EXT_texture_compression_astc_decode_mode 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode) + +#endif /* GL_EXT_texture_compression_astc_decode_mode */ + +/* ----------- GL_EXT_texture_compression_astc_decode_mode_rgb9e5 ---------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 +#define GL_EXT_texture_compression_astc_decode_mode_rgb9e5 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5) + +#endif /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */ + +/* -------------------- GL_EXT_texture_compression_bptc -------------------- */ + +#ifndef GL_EXT_texture_compression_bptc +#define GL_EXT_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F + +#define GLEW_EXT_texture_compression_bptc GLEW_GET_VAR(__GLEW_EXT_texture_compression_bptc) + +#endif /* GL_EXT_texture_compression_bptc */ + /* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ #ifndef GL_EXT_texture_compression_dxt1 @@ -10808,6 +12692,20 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_compression_s3tc */ +/* ------------------ GL_EXT_texture_compression_s3tc_srgb ----------------- */ + +#ifndef GL_EXT_texture_compression_s3tc_srgb +#define GL_EXT_texture_compression_s3tc_srgb 1 + +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F + +#define GLEW_EXT_texture_compression_s3tc_srgb GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc_srgb) + +#endif /* GL_EXT_texture_compression_s3tc_srgb */ + /* ------------------------ GL_EXT_texture_cube_map ------------------------ */ #ifndef GL_EXT_texture_cube_map @@ -10830,6 +12728,25 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_cube_map */ +/* --------------------- GL_EXT_texture_cube_map_array --------------------- */ + +#ifndef GL_EXT_texture_cube_map_array +#define GL_EXT_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A + +#define GLEW_EXT_texture_cube_map_array GLEW_GET_VAR(__GLEW_EXT_texture_cube_map_array) + +#endif /* GL_EXT_texture_cube_map_array */ + /* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ #ifndef GL_EXT_texture_edge_clamp @@ -10926,6 +12843,28 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_filter_minmax */ +/* --------------------- GL_EXT_texture_format_BGRA8888 -------------------- */ + +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_EXT_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_EXT_texture_format_BGRA8888) + +#endif /* GL_EXT_texture_format_BGRA8888 */ + +/* ------------------ GL_EXT_texture_format_sRGB_override ------------------ */ + +#ifndef GL_EXT_texture_format_sRGB_override +#define GL_EXT_texture_format_sRGB_override 1 + +#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF + +#define GLEW_EXT_texture_format_sRGB_override GLEW_GET_VAR(__GLEW_EXT_texture_format_sRGB_override) + +#endif /* GL_EXT_texture_format_sRGB_override */ + /* ------------------------- GL_EXT_texture_integer ------------------------ */ #ifndef GL_EXT_texture_integer @@ -11023,6 +12962,35 @@ typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum #endif /* GL_EXT_texture_mirror_clamp */ +/* ------------------ GL_EXT_texture_mirror_clamp_to_edge ------------------ */ + +#ifndef GL_EXT_texture_mirror_clamp_to_edge +#define GL_EXT_texture_mirror_clamp_to_edge 1 + +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 + +#define GLEW_EXT_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp_to_edge) + +#endif /* GL_EXT_texture_mirror_clamp_to_edge */ + +/* ------------------------- GL_EXT_texture_norm16 ------------------------- */ + +#ifndef GL_EXT_texture_norm16 +#define GL_EXT_texture_norm16 1 + +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA16_EXT 0x805B +#define GL_R16_EXT 0x822A +#define GL_RG16_EXT 0x822C +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGB16_SNORM_EXT 0x8F9A +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_texture_norm16 GLEW_GET_VAR(__GLEW_EXT_texture_norm16) + +#endif /* GL_EXT_texture_norm16 */ + /* ------------------------- GL_EXT_texture_object ------------------------- */ #ifndef GL_EXT_texture_object @@ -11068,6 +13036,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_perturb_normal */ +/* ------------------------ GL_EXT_texture_query_lod ----------------------- */ + +#ifndef GL_EXT_texture_query_lod +#define GL_EXT_texture_query_lod 1 + +#define GLEW_EXT_texture_query_lod GLEW_GET_VAR(__GLEW_EXT_texture_query_lod) + +#endif /* GL_EXT_texture_query_lod */ + /* ------------------------ GL_EXT_texture_rectangle ----------------------- */ #ifndef GL_EXT_texture_rectangle @@ -11082,6 +13059,20 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_rectangle */ +/* --------------------------- GL_EXT_texture_rg --------------------------- */ + +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 + +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B + +#define GLEW_EXT_texture_rg GLEW_GET_VAR(__GLEW_EXT_texture_rg) + +#endif /* GL_EXT_texture_rg */ + /* -------------------------- GL_EXT_texture_sRGB -------------------------- */ #ifndef GL_EXT_texture_sRGB @@ -11108,6 +13099,28 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_sRGB */ +/* ------------------------- GL_EXT_texture_sRGB_R8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 + +#define GL_SR8_EXT 0x8FBD + +#define GLEW_EXT_texture_sRGB_R8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_R8) + +#endif /* GL_EXT_texture_sRGB_R8 */ + +/* ------------------------ GL_EXT_texture_sRGB_RG8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 + +#define GL_SRG8_EXT 0x8FBE + +#define GLEW_EXT_texture_sRGB_RG8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_RG8) + +#endif /* GL_EXT_texture_sRGB_RG8 */ + /* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ #ifndef GL_EXT_texture_sRGB_decode @@ -11121,6 +13134,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_sRGB_decode */ +/* ----------------------- GL_EXT_texture_shadow_lod ----------------------- */ + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 + +#define GLEW_EXT_texture_shadow_lod GLEW_GET_VAR(__GLEW_EXT_texture_shadow_lod) + +#endif /* GL_EXT_texture_shadow_lod */ + /* --------------------- GL_EXT_texture_shared_exponent -------------------- */ #ifndef GL_EXT_texture_shared_exponent @@ -11169,6 +13191,54 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_snorm */ +/* ------------------------- GL_EXT_texture_storage ------------------------ */ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 + +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R16F_EXT 0x822D +#define GL_R32F_EXT 0x822E +#define GL_RG16F_EXT 0x822F +#define GL_RG32F_EXT 0x8230 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_RGB_RAW_422_APPLE 0x8A51 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_BGRA8_EXT 0x93A1 + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + +#define glTexStorage1DEXT GLEW_GET_FUN(__glewTexStorage1DEXT) +#define glTexStorage2DEXT GLEW_GET_FUN(__glewTexStorage2DEXT) +#define glTexStorage3DEXT GLEW_GET_FUN(__glewTexStorage3DEXT) +#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) +#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) +#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) + +#define GLEW_EXT_texture_storage GLEW_GET_VAR(__GLEW_EXT_texture_storage) + +#endif /* GL_EXT_texture_storage */ + /* ------------------------- GL_EXT_texture_swizzle ------------------------ */ #ifndef GL_EXT_texture_swizzle @@ -11184,6 +13254,36 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_swizzle */ +/* ------------------- GL_EXT_texture_type_2_10_10_10_REV ------------------ */ + +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 + +#define GLEW_EXT_texture_type_2_10_10_10_REV GLEW_GET_VAR(__GLEW_EXT_texture_type_2_10_10_10_REV) + +#endif /* GL_EXT_texture_type_2_10_10_10_REV */ + +/* -------------------------- GL_EXT_texture_view -------------------------- */ + +#ifndef GL_EXT_texture_view +#define GL_EXT_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewEXT GLEW_GET_FUN(__glewTextureViewEXT) + +#define GLEW_EXT_texture_view GLEW_GET_VAR(__GLEW_EXT_texture_view) + +#endif /* GL_EXT_texture_view */ + /* --------------------------- GL_EXT_timer_query -------------------------- */ #ifndef GL_EXT_timer_query @@ -11242,6 +13342,19 @@ typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint progra #endif /* GL_EXT_transform_feedback */ +/* ------------------------- GL_EXT_unpack_subimage ------------------------ */ + +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 + +#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 +#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 + +#define GLEW_EXT_unpack_subimage GLEW_GET_VAR(__GLEW_EXT_unpack_subimage) + +#endif /* GL_EXT_unpack_subimage */ + /* -------------------------- GL_EXT_vertex_array -------------------------- */ #ifndef GL_EXT_vertex_array @@ -11314,6 +13427,23 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, #endif /* GL_EXT_vertex_array_bgra */ +/* ----------------------- GL_EXT_vertex_array_setXXX ---------------------- */ + +#ifndef GL_EXT_vertex_array_setXXX +#define GL_EXT_vertex_array_setXXX 1 + +typedef void (GLAPIENTRY * PFNGLBINDARRAYSETEXTPROC) (const void *arrayset); +typedef const void * (GLAPIENTRY * PFNGLCREATEARRAYSETEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLDELETEARRAYSETSEXTPROC) (GLsizei n, const void *arrayset[]); + +#define glBindArraySetEXT GLEW_GET_FUN(__glewBindArraySetEXT) +#define glCreateArraySetExt GLEW_GET_FUN(__glewCreateArraySetExt) +#define glDeleteArraySetsEXT GLEW_GET_FUN(__glewDeleteArraySetsEXT) + +#define GLEW_EXT_vertex_array_setXXX GLEW_GET_VAR(__GLEW_EXT_vertex_array_setXXX) + +#endif /* GL_EXT_vertex_array_setXXX */ + /* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ #ifndef GL_EXT_vertex_attrib_64bit @@ -11597,6 +13727,41 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); #endif /* GL_EXT_vertex_weighting */ +/* ------------------------ GL_EXT_win32_keyed_mutex ----------------------- */ + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 + +typedef GLboolean (GLAPIENTRY * PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); +typedef GLboolean (GLAPIENTRY * PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); + +#define glAcquireKeyedMutexWin32EXT GLEW_GET_FUN(__glewAcquireKeyedMutexWin32EXT) +#define glReleaseKeyedMutexWin32EXT GLEW_GET_FUN(__glewReleaseKeyedMutexWin32EXT) + +#define GLEW_EXT_win32_keyed_mutex GLEW_GET_VAR(__GLEW_EXT_win32_keyed_mutex) + +#endif /* GL_EXT_win32_keyed_mutex */ + +/* ------------------------ GL_EXT_window_rectangles ----------------------- */ + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 + +#define GL_INCLUSIVE_EXT 0x8F10 +#define GL_EXCLUSIVE_EXT 0x8F11 +#define GL_WINDOW_RECTANGLE_EXT 0x8F12 +#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 +#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 +#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 + +typedef void (GLAPIENTRY * PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint box[]); + +#define glWindowRectanglesEXT GLEW_GET_FUN(__glewWindowRectanglesEXT) + +#define GLEW_EXT_window_rectangles GLEW_GET_VAR(__GLEW_EXT_window_rectangles) + +#endif /* GL_EXT_window_rectangles */ + /* ------------------------- GL_EXT_x11_sync_object ------------------------ */ #ifndef GL_EXT_x11_sync_object @@ -11612,6 +13777,17 @@ typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, #endif /* GL_EXT_x11_sync_object */ +/* ----------------------- GL_FJ_shader_binary_GCCSO ----------------------- */ + +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 + +#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 + +#define GLEW_FJ_shader_binary_GCCSO GLEW_GET_VAR(__GLEW_FJ_shader_binary_GCCSO) + +#endif /* GL_FJ_shader_binary_GCCSO */ + /* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ #ifndef GL_GREMEDY_frame_terminator @@ -11792,6 +13968,159 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum ty #endif /* GL_IBM_vertex_array_lists */ +/* ------------------------ GL_IMG_bindless_texture ------------------------ */ + +#ifndef GL_IMG_bindless_texture +#define GL_IMG_bindless_texture 1 + +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64* value); + +#define glGetTextureHandleIMG GLEW_GET_FUN(__glewGetTextureHandleIMG) +#define glGetTextureSamplerHandleIMG GLEW_GET_FUN(__glewGetTextureSamplerHandleIMG) +#define glProgramUniformHandleui64IMG GLEW_GET_FUN(__glewProgramUniformHandleui64IMG) +#define glProgramUniformHandleui64vIMG GLEW_GET_FUN(__glewProgramUniformHandleui64vIMG) +#define glUniformHandleui64IMG GLEW_GET_FUN(__glewUniformHandleui64IMG) +#define glUniformHandleui64vIMG GLEW_GET_FUN(__glewUniformHandleui64vIMG) + +#define GLEW_IMG_bindless_texture GLEW_GET_VAR(__GLEW_IMG_bindless_texture) + +#endif /* GL_IMG_bindless_texture */ + +/* --------------------- GL_IMG_framebuffer_downsample --------------------- */ + +#ifndef GL_IMG_framebuffer_downsample +#define GL_IMG_framebuffer_downsample 1 + +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C +#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D +#define GL_DOWNSAMPLE_SCALES_IMG 0x913E +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); + +#define glFramebufferTexture2DDownsampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DDownsampleIMG) +#define glFramebufferTextureLayerDownsampleIMG GLEW_GET_FUN(__glewFramebufferTextureLayerDownsampleIMG) + +#define GLEW_IMG_framebuffer_downsample GLEW_GET_VAR(__GLEW_IMG_framebuffer_downsample) + +#endif /* GL_IMG_framebuffer_downsample */ + +/* ----------------- GL_IMG_multisampled_render_to_texture ----------------- */ + +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glFramebufferTexture2DMultisampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleIMG) +#define glRenderbufferStorageMultisampleIMG GLEW_GET_FUN(__glewRenderbufferStorageMultisampleIMG) + +#define GLEW_IMG_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_IMG_multisampled_render_to_texture) + +#endif /* GL_IMG_multisampled_render_to_texture */ + +/* ------------------------- GL_IMG_program_binary ------------------------- */ + +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 + +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 + +#define GLEW_IMG_program_binary GLEW_GET_VAR(__GLEW_IMG_program_binary) + +#endif /* GL_IMG_program_binary */ + +/* --------------------------- GL_IMG_read_format -------------------------- */ + +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 + +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 + +#define GLEW_IMG_read_format GLEW_GET_VAR(__GLEW_IMG_read_format) + +#endif /* GL_IMG_read_format */ + +/* -------------------------- GL_IMG_shader_binary ------------------------- */ + +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 + +#define GL_SGX_BINARY_IMG 0x8C0A + +#define GLEW_IMG_shader_binary GLEW_GET_VAR(__GLEW_IMG_shader_binary) + +#endif /* GL_IMG_shader_binary */ + +/* -------------------- GL_IMG_texture_compression_pvrtc ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 + +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 + +#define GLEW_IMG_texture_compression_pvrtc GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc) + +#endif /* GL_IMG_texture_compression_pvrtc */ + +/* ------------------- GL_IMG_texture_compression_pvrtc2 ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 + +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 + +#define GLEW_IMG_texture_compression_pvrtc2 GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc2) + +#endif /* GL_IMG_texture_compression_pvrtc2 */ + +/* --------------- GL_IMG_texture_env_enhanced_fixed_function -------------- */ + +#ifndef GL_IMG_texture_env_enhanced_fixed_function +#define GL_IMG_texture_env_enhanced_fixed_function 1 + +#define GL_DOT3_RGBA_IMG 0x86AF +#define GL_MODULATE_COLOR_IMG 0x8C04 +#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 +#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 +#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 +#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 +#define GL_ADD_BLEND_IMG 0x8C09 + +#define GLEW_IMG_texture_env_enhanced_fixed_function GLEW_GET_VAR(__GLEW_IMG_texture_env_enhanced_fixed_function) + +#endif /* GL_IMG_texture_env_enhanced_fixed_function */ + +/* ---------------------- GL_IMG_texture_filter_cubic ---------------------- */ + +#ifndef GL_IMG_texture_filter_cubic +#define GL_IMG_texture_filter_cubic 1 + +#define GL_CUBIC_IMG 0x9139 +#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A +#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B + +#define GLEW_IMG_texture_filter_cubic GLEW_GET_VAR(__GLEW_IMG_texture_filter_cubic) + +#endif /* GL_IMG_texture_filter_cubic */ + /* -------------------------- GL_INGR_color_clamp -------------------------- */ #ifndef GL_INGR_color_clamp @@ -11821,6 +14150,28 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum ty #endif /* GL_INGR_interlace_read */ +/* ----------------------- GL_INTEL_blackhole_render ----------------------- */ + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 + +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC + +#define GLEW_INTEL_blackhole_render GLEW_GET_VAR(__GLEW_INTEL_blackhole_render) + +#endif /* GL_INTEL_blackhole_render */ + +/* ------------------ GL_INTEL_conservative_rasterization ------------------ */ + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 + +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE + +#define GLEW_INTEL_conservative_rasterization GLEW_GET_VAR(__GLEW_INTEL_conservative_rasterization) + +#endif /* GL_INTEL_conservative_rasterization */ + /* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */ #ifndef GL_INTEL_fragment_shader_ordering @@ -11938,6 +14289,15 @@ typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLui #endif /* GL_INTEL_performance_query */ +/* ------------------- GL_INTEL_shader_integer_functions2 ------------------ */ + +#ifndef GL_INTEL_shader_integer_functions2 +#define GL_INTEL_shader_integer_functions2 1 + +#define GLEW_INTEL_shader_integer_functions2 GLEW_GET_VAR(__GLEW_INTEL_shader_integer_functions2) + +#endif /* GL_INTEL_shader_integer_functions2 */ + /* ------------------------ GL_INTEL_texture_scissor ----------------------- */ #ifndef GL_INTEL_texture_scissor @@ -12057,9 +14417,9 @@ typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei* length, GLchar *label); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label); typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label); typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void); typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message); @@ -12089,6 +14449,22 @@ typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, G #endif /* GL_KHR_no_error */ +/* --------------------- GL_KHR_parallel_shader_compile -------------------- */ + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 + +#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 +#define GL_COMPLETION_STATUS_KHR 0x91B1 + +typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); + +#define glMaxShaderCompilerThreadsKHR GLEW_GET_FUN(__glewMaxShaderCompilerThreadsKHR) + +#define GLEW_KHR_parallel_shader_compile GLEW_GET_VAR(__GLEW_KHR_parallel_shader_compile) + +#endif /* GL_KHR_parallel_shader_compile */ + /* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */ #ifndef GL_KHR_robust_buffer_access_behavior @@ -12126,6 +14502,28 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #endif /* GL_KHR_robustness */ +/* ------------------------- GL_KHR_shader_subgroup ------------------------ */ + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 + +#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 +#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 +#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 +#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 +#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 +#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 +#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 +#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 +#define GL_SUBGROUP_SIZE_KHR 0x9532 +#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 +#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 +#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 + +#define GLEW_KHR_shader_subgroup GLEW_GET_VAR(__GLEW_KHR_shader_subgroup) + +#endif /* GL_KHR_shader_subgroup */ + /* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */ #ifndef GL_KHR_texture_compression_astc_hdr @@ -12145,6 +14543,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 @@ -12159,6 +14567,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 #define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr) @@ -12183,6 +14601,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 @@ -12197,11 +14625,30 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 #define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr) #endif /* GL_KHR_texture_compression_astc_ldr */ +/* --------------- GL_KHR_texture_compression_astc_sliced_3d --------------- */ + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 + +#define GLEW_KHR_texture_compression_astc_sliced_3d GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_sliced_3d) + +#endif /* GL_KHR_texture_compression_astc_sliced_3d */ + /* -------------------------- GL_KTX_buffer_region ------------------------- */ #ifndef GL_KTX_buffer_region @@ -12244,6 +14691,23 @@ typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, G #endif /* GL_MESAX_texture_stack */ +/* ----------------------- GL_MESA_framebuffer_flip_y ---------------------- */ + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 + +#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint* params); + +#define glFramebufferParameteriMESA GLEW_GET_FUN(__glewFramebufferParameteriMESA) +#define glGetFramebufferParameterivMESA GLEW_GET_FUN(__glewGetFramebufferParameterivMESA) + +#define GLEW_MESA_framebuffer_flip_y GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_y) + +#endif /* GL_MESA_framebuffer_flip_y */ + /* -------------------------- GL_MESA_pack_invert -------------------------- */ #ifndef GL_MESA_pack_invert @@ -12255,6 +14719,17 @@ typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, G #endif /* GL_MESA_pack_invert */ +/* --------------------- GL_MESA_program_binary_formats -------------------- */ + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 + +#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F + +#define GLEW_MESA_program_binary_formats GLEW_GET_VAR(__GLEW_MESA_program_binary_formats) + +#endif /* GL_MESA_program_binary_formats */ + /* ------------------------- GL_MESA_resize_buffers ------------------------ */ #ifndef GL_MESA_resize_buffers @@ -12268,6 +14743,24 @@ typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); #endif /* GL_MESA_resize_buffers */ +/* -------------------- GL_MESA_shader_integer_functions ------------------- */ + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 + +#define GLEW_MESA_shader_integer_functions GLEW_GET_VAR(__GLEW_MESA_shader_integer_functions) + +#endif /* GL_MESA_shader_integer_functions */ + +/* ----------------------- GL_MESA_tile_raster_order ----------------------- */ + +#ifndef GL_MESA_tile_raster_order +#define GL_MESA_tile_raster_order 1 + +#define GLEW_MESA_tile_raster_order GLEW_GET_VAR(__GLEW_MESA_tile_raster_order) + +#endif /* GL_MESA_tile_raster_order */ + /* --------------------------- GL_MESA_window_pos -------------------------- */ #ifndef GL_MESA_window_pos @@ -12340,6 +14833,15 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #endif /* GL_MESA_ycbcr_texture */ +/* ----------- GL_NVX_blend_equation_advanced_multi_draw_buffers ----------- */ + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 + +#define GLEW_NVX_blend_equation_advanced_multi_draw_buffers GLEW_GET_VAR(__GLEW_NVX_blend_equation_advanced_multi_draw_buffers) + +#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ + /* ----------------------- GL_NVX_conditional_render ----------------------- */ #ifndef GL_NVX_conditional_render @@ -12370,6 +14872,134 @@ typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void); #endif /* GL_NVX_gpu_memory_info */ +/* ------------------------- GL_NVX_gpu_multicast2 ------------------------- */ + +#ifndef GL_NVX_gpu_multicast2 +#define GL_NVX_gpu_multicast2 1 + +#define GL_UPLOAD_GPU_MASK_NVX 0x954A + +typedef GLsync (GLAPIENTRY * PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef GLuint (GLAPIENTRY * PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef void (GLAPIENTRY * PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +typedef void (GLAPIENTRY * PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); + +#define glAsyncCopyBufferSubDataNVX GLEW_GET_FUN(__glewAsyncCopyBufferSubDataNVX) +#define glAsyncCopyImageSubDataNVX GLEW_GET_FUN(__glewAsyncCopyImageSubDataNVX) +#define glMulticastScissorArrayvNVX GLEW_GET_FUN(__glewMulticastScissorArrayvNVX) +#define glMulticastViewportArrayvNVX GLEW_GET_FUN(__glewMulticastViewportArrayvNVX) +#define glMulticastViewportPositionWScaleNVX GLEW_GET_FUN(__glewMulticastViewportPositionWScaleNVX) +#define glUploadGpuMaskNVX GLEW_GET_FUN(__glewUploadGpuMaskNVX) + +#define GLEW_NVX_gpu_multicast2 GLEW_GET_VAR(__GLEW_NVX_gpu_multicast2) + +#endif /* GL_NVX_gpu_multicast2 */ + +/* ---------------------- GL_NVX_linked_gpu_multicast ---------------------- */ + +#ifndef GL_NVX_linked_gpu_multicast +#define GL_NVX_linked_gpu_multicast 1 + +#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 +#define GL_MAX_LGPU_GPUS_NVX 0x92BA + +typedef void (GLAPIENTRY * PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLLGPUINTERLOCKNVXPROC) (void); +typedef void (GLAPIENTRY * PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); + +#define glLGPUCopyImageSubDataNVX GLEW_GET_FUN(__glewLGPUCopyImageSubDataNVX) +#define glLGPUInterlockNVX GLEW_GET_FUN(__glewLGPUInterlockNVX) +#define glLGPUNamedBufferSubDataNVX GLEW_GET_FUN(__glewLGPUNamedBufferSubDataNVX) + +#define GLEW_NVX_linked_gpu_multicast GLEW_GET_VAR(__GLEW_NVX_linked_gpu_multicast) + +#endif /* GL_NVX_linked_gpu_multicast */ + +/* ------------------------- GL_NVX_progress_fence ------------------------- */ + +#ifndef GL_NVX_progress_fence +#define GL_NVX_progress_fence 1 + +typedef void (GLAPIENTRY * PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); + +#define glClientWaitSemaphoreui64NVX GLEW_GET_FUN(__glewClientWaitSemaphoreui64NVX) +#define glSignalSemaphoreui64NVX GLEW_GET_FUN(__glewSignalSemaphoreui64NVX) +#define glWaitSemaphoreui64NVX GLEW_GET_FUN(__glewWaitSemaphoreui64NVX) + +#define GLEW_NVX_progress_fence GLEW_GET_VAR(__GLEW_NVX_progress_fence) + +#endif /* GL_NVX_progress_fence */ + +/* ------------------------ GL_NV_3dvision_settings ------------------------ */ + +#ifndef GL_NV_3dvision_settings +#define GL_NV_3dvision_settings 1 + +#define GL_3DVISION_STEREO_NV 0x90F4 +#define GL_STEREO_SEPARATION_NV 0x90F5 +#define GL_STEREO_CONVERGENCE_NV 0x90F6 +#define GL_STEREO_CUTOFF_NV 0x90F7 +#define GL_STEREO_PROJECTION_NV 0x90F8 +#define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9 +#define GL_STEREO_PROJECTION_ORTHO_NV 0x90FA + +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glStereoParameterfNV GLEW_GET_FUN(__glewStereoParameterfNV) +#define glStereoParameteriNV GLEW_GET_FUN(__glewStereoParameteriNV) + +#define GLEW_NV_3dvision_settings GLEW_GET_VAR(__GLEW_NV_3dvision_settings) + +#endif /* GL_NV_3dvision_settings */ + +/* ------------------- GL_NV_EGL_stream_consumer_external ------------------ */ + +#ifndef GL_NV_EGL_stream_consumer_external +#define GL_NV_EGL_stream_consumer_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_NV_EGL_stream_consumer_external GLEW_GET_VAR(__GLEW_NV_EGL_stream_consumer_external) + +#endif /* GL_NV_EGL_stream_consumer_external */ + +/* ----------------- GL_NV_alpha_to_coverage_dither_control ---------------- */ + +#ifndef GL_NV_alpha_to_coverage_dither_control +#define GL_NV_alpha_to_coverage_dither_control 1 + +#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF +#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D +#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E +#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F + +typedef void (GLAPIENTRY * PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); + +#define glAlphaToCoverageDitherControlNV GLEW_GET_FUN(__glewAlphaToCoverageDitherControlNV) + +#define GLEW_NV_alpha_to_coverage_dither_control GLEW_GET_VAR(__GLEW_NV_alpha_to_coverage_dither_control) + +#endif /* GL_NV_alpha_to_coverage_dither_control */ + +/* ------------------------------- GL_NV_bgr ------------------------------- */ + +#ifndef GL_NV_bgr +#define GL_NV_bgr 1 + +#define GL_BGR_NV 0x80E0 + +#define GLEW_NV_bgr GLEW_GET_VAR(__GLEW_NV_bgr) + +#endif /* GL_NV_bgr */ + /* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */ #ifndef GL_NV_bindless_multi_draw_indirect @@ -12512,6 +15142,18 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_blend_equation_advanced_coherent */ +/* ----------------------- GL_NV_blend_minmax_factor ----------------------- */ + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_NV_blend_minmax_factor GLEW_GET_VAR(__GLEW_NV_blend_minmax_factor) + +#endif /* GL_NV_blend_minmax_factor */ + /* --------------------------- GL_NV_blend_square -------------------------- */ #ifndef GL_NV_blend_square @@ -12521,6 +15163,88 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_blend_square */ +/* ----------------------- GL_NV_clip_space_w_scaling ---------------------- */ + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 + +#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C +#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D +#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E + +typedef void (GLAPIENTRY * PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); + +#define glViewportPositionWScaleNV GLEW_GET_FUN(__glewViewportPositionWScaleNV) + +#define GLEW_NV_clip_space_w_scaling GLEW_GET_VAR(__GLEW_NV_clip_space_w_scaling) + +#endif /* GL_NV_clip_space_w_scaling */ + +/* --------------------------- GL_NV_command_list -------------------------- */ + +#ifndef GL_NV_command_list +#define GL_NV_command_list 1 + +#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 +#define GL_NOP_COMMAND_NV 0x0001 +#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 +#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 +#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 +#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 +#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 +#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 +#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 +#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 +#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a +#define GL_BLEND_COLOR_COMMAND_NV 0x000b +#define GL_STENCIL_REF_COMMAND_NV 0x000c +#define GL_LINE_WIDTH_COMMAND_NV 0x000d +#define GL_POLYGON_OFFSET_COMMAND_NV 0x000e +#define GL_ALPHA_REF_COMMAND_NV 0x000f +#define GL_VIEWPORT_COMMAND_NV 0x0010 +#define GL_SCISSOR_COMMAND_NV 0x0011 +#define GL_FRONT_FACE_COMMAND_NV 0x0012 + +typedef void (GLAPIENTRY * PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); +typedef void (GLAPIENTRY * PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint* lists); +typedef void (GLAPIENTRY * PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint* states); +typedef void (GLAPIENTRY * PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint* lists); +typedef void (GLAPIENTRY * PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint* states); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef GLuint (GLAPIENTRY * PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); +typedef GLushort (GLAPIENTRY * PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); +typedef GLboolean (GLAPIENTRY * PFNGLISCOMMANDLISTNVPROC) (GLuint list); +typedef GLboolean (GLAPIENTRY * PFNGLISSTATENVPROC) (GLuint state); +typedef void (GLAPIENTRY * PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); + +#define glCallCommandListNV GLEW_GET_FUN(__glewCallCommandListNV) +#define glCommandListSegmentsNV GLEW_GET_FUN(__glewCommandListSegmentsNV) +#define glCompileCommandListNV GLEW_GET_FUN(__glewCompileCommandListNV) +#define glCreateCommandListsNV GLEW_GET_FUN(__glewCreateCommandListsNV) +#define glCreateStatesNV GLEW_GET_FUN(__glewCreateStatesNV) +#define glDeleteCommandListsNV GLEW_GET_FUN(__glewDeleteCommandListsNV) +#define glDeleteStatesNV GLEW_GET_FUN(__glewDeleteStatesNV) +#define glDrawCommandsAddressNV GLEW_GET_FUN(__glewDrawCommandsAddressNV) +#define glDrawCommandsNV GLEW_GET_FUN(__glewDrawCommandsNV) +#define glDrawCommandsStatesAddressNV GLEW_GET_FUN(__glewDrawCommandsStatesAddressNV) +#define glDrawCommandsStatesNV GLEW_GET_FUN(__glewDrawCommandsStatesNV) +#define glGetCommandHeaderNV GLEW_GET_FUN(__glewGetCommandHeaderNV) +#define glGetStageIndexNV GLEW_GET_FUN(__glewGetStageIndexNV) +#define glIsCommandListNV GLEW_GET_FUN(__glewIsCommandListNV) +#define glIsStateNV GLEW_GET_FUN(__glewIsStateNV) +#define glListDrawCommandsStatesClientNV GLEW_GET_FUN(__glewListDrawCommandsStatesClientNV) +#define glStateCaptureNV GLEW_GET_FUN(__glewStateCaptureNV) + +#define GLEW_NV_command_list GLEW_GET_VAR(__GLEW_NV_command_list) + +#endif /* GL_NV_command_list */ + /* ------------------------- GL_NV_compute_program5 ------------------------ */ #ifndef GL_NV_compute_program5 @@ -12533,6 +15257,15 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_compute_program5 */ +/* -------------------- GL_NV_compute_shader_derivatives ------------------- */ + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 + +#define GLEW_NV_compute_shader_derivatives GLEW_GET_VAR(__GLEW_NV_compute_shader_derivatives) + +#endif /* GL_NV_compute_shader_derivatives */ + /* ------------------------ GL_NV_conditional_render ----------------------- */ #ifndef GL_NV_conditional_render @@ -12588,6 +15321,59 @@ typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pnam #endif /* GL_NV_conservative_raster_dilate */ +/* ------------------- GL_NV_conservative_raster_pre_snap ------------------ */ + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 + +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 + +#define GLEW_NV_conservative_raster_pre_snap GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap) + +#endif /* GL_NV_conservative_raster_pre_snap */ + +/* -------------- GL_NV_conservative_raster_pre_snap_triangles ------------- */ + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 + +#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D +#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F + +typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glConservativeRasterParameteriNV GLEW_GET_FUN(__glewConservativeRasterParameteriNV) + +#define GLEW_NV_conservative_raster_pre_snap_triangles GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap_triangles) + +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +/* --------------- GL_NV_conservative_raster_underestimation --------------- */ + +#ifndef GL_NV_conservative_raster_underestimation +#define GL_NV_conservative_raster_underestimation 1 + +#define GLEW_NV_conservative_raster_underestimation GLEW_GET_VAR(__GLEW_NV_conservative_raster_underestimation) + +#endif /* GL_NV_conservative_raster_underestimation */ + +/* --------------------------- GL_NV_copy_buffer --------------------------- */ + +#ifndef GL_NV_copy_buffer +#define GL_NV_copy_buffer 1 + +#define GL_COPY_READ_BUFFER_NV 0x8F36 +#define GL_COPY_WRITE_BUFFER_NV 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubDataNV GLEW_GET_FUN(__glewCopyBufferSubDataNV) + +#define GLEW_NV_copy_buffer GLEW_GET_VAR(__GLEW_NV_copy_buffer) + +#endif /* GL_NV_copy_buffer */ + /* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ #ifndef GL_NV_copy_depth_to_color @@ -12658,6 +15444,17 @@ typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFa #endif /* GL_NV_depth_clamp */ +/* ------------------------- GL_NV_depth_nonlinear ------------------------- */ + +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 + +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C + +#define GLEW_NV_depth_nonlinear GLEW_GET_VAR(__GLEW_NV_depth_nonlinear) + +#endif /* GL_NV_depth_nonlinear */ + /* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ #ifndef GL_NV_depth_range_unclamped @@ -12673,6 +15470,68 @@ typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFa #endif /* GL_NV_depth_range_unclamped */ +/* --------------------------- GL_NV_draw_buffers -------------------------- */ + +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersNV GLEW_GET_FUN(__glewDrawBuffersNV) + +#define GLEW_NV_draw_buffers GLEW_GET_VAR(__GLEW_NV_draw_buffers) + +#endif /* GL_NV_draw_buffers */ + +/* -------------------------- GL_NV_draw_instanced ------------------------- */ + +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + +#define glDrawArraysInstancedNV GLEW_GET_FUN(__glewDrawArraysInstancedNV) +#define glDrawElementsInstancedNV GLEW_GET_FUN(__glewDrawElementsInstancedNV) + +#define GLEW_NV_draw_instanced GLEW_GET_VAR(__GLEW_NV_draw_instanced) + +#endif /* GL_NV_draw_instanced */ + /* --------------------------- GL_NV_draw_texture -------------------------- */ #ifndef GL_NV_draw_texture @@ -12686,6 +15545,29 @@ typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampl #endif /* GL_NV_draw_texture */ +/* ------------------------ GL_NV_draw_vulkan_image ------------------------ */ + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 + +typedef void (APIENTRY *GLVULKANPROCNV)(void); + +typedef void (GLAPIENTRY * PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +typedef GLVULKANPROCNV (GLAPIENTRY * PFNGLGETVKPROCADDRNVPROC) (const GLchar* name); +typedef void (GLAPIENTRY * PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); +typedef void (GLAPIENTRY * PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (GLAPIENTRY * PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); + +#define glDrawVkImageNV GLEW_GET_FUN(__glewDrawVkImageNV) +#define glGetVkProcAddrNV GLEW_GET_FUN(__glewGetVkProcAddrNV) +#define glSignalVkFenceNV GLEW_GET_FUN(__glewSignalVkFenceNV) +#define glSignalVkSemaphoreNV GLEW_GET_FUN(__glewSignalVkSemaphoreNV) +#define glWaitVkSemaphoreNV GLEW_GET_FUN(__glewWaitVkSemaphoreNV) + +#define GLEW_NV_draw_vulkan_image GLEW_GET_VAR(__GLEW_NV_draw_vulkan_image) + +#endif /* GL_NV_draw_vulkan_image */ + /* ---------------------------- GL_NV_evaluators --------------------------- */ #ifndef GL_NV_evaluators @@ -12740,6 +15622,15 @@ typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pna #endif /* GL_NV_evaluators */ +/* --------------------- GL_NV_explicit_attrib_location -------------------- */ + +#ifndef GL_NV_explicit_attrib_location +#define GL_NV_explicit_attrib_location 1 + +#define GLEW_NV_explicit_attrib_location GLEW_GET_VAR(__GLEW_NV_explicit_attrib_location) + +#endif /* GL_NV_explicit_attrib_location */ + /* ----------------------- GL_NV_explicit_multisample ---------------------- */ #ifndef GL_NV_explicit_multisample @@ -12768,6 +15659,33 @@ typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint re #endif /* GL_NV_explicit_multisample */ +/* ---------------------- GL_NV_fbo_color_attachments ---------------------- */ + +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 + +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +#define GLEW_NV_fbo_color_attachments GLEW_GET_VAR(__GLEW_NV_fbo_color_attachments) + +#endif /* GL_NV_fbo_color_attachments */ + /* ------------------------------ GL_NV_fence ------------------------------ */ #ifndef GL_NV_fence @@ -12925,6 +15843,15 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_fragment_program_option */ +/* ------------------- GL_NV_fragment_shader_barycentric ------------------- */ + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 + +#define GLEW_NV_fragment_shader_barycentric GLEW_GET_VAR(__GLEW_NV_fragment_shader_barycentric) + +#endif /* GL_NV_fragment_shader_barycentric */ + /* -------------------- GL_NV_fragment_shader_interlock -------------------- */ #ifndef GL_NV_fragment_shader_interlock @@ -12934,6 +15861,24 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_fragment_shader_interlock */ +/* ------------------------- GL_NV_framebuffer_blit ------------------------ */ + +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 +#define GL_READ_FRAMEBUFFER_NV 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferNV GLEW_GET_FUN(__glewBlitFramebufferNV) + +#define GLEW_NV_framebuffer_blit GLEW_GET_VAR(__GLEW_NV_framebuffer_blit) + +#endif /* GL_NV_framebuffer_blit */ + /* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */ #ifndef GL_NV_framebuffer_mixed_samples @@ -12958,6 +15903,23 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_framebuffer_mixed_samples */ +/* --------------------- GL_NV_framebuffer_multisample --------------------- */ + +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 +#define GL_MAX_SAMPLES_NV 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleNV) + +#define GLEW_NV_framebuffer_multisample GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample) + +#endif /* GL_NV_framebuffer_multisample */ + /* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ #ifndef GL_NV_framebuffer_multisample_coverage @@ -12976,6 +15938,15 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (G #endif /* GL_NV_framebuffer_multisample_coverage */ +/* ----------------------- GL_NV_generate_mipmap_sRGB ---------------------- */ + +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 + +#define GLEW_NV_generate_mipmap_sRGB GLEW_GET_VAR(__GLEW_NV_generate_mipmap_sRGB) + +#endif /* GL_NV_generate_mipmap_sRGB */ + /* ------------------------ GL_NV_geometry_program4 ------------------------ */ #ifndef GL_NV_geometry_program4 @@ -13011,6 +15982,47 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint #endif /* GL_NV_geometry_shader_passthrough */ +/* -------------------------- GL_NV_gpu_multicast -------------------------- */ + +#ifndef GL_NV_gpu_multicast +#define GL_NV_gpu_multicast 1 + +#define GL_PER_GPU_STORAGE_BIT_NV 0x0800 +#define GL_MULTICAST_GPUS_NV 0x92BA +#define GL_PER_GPU_STORAGE_NV 0x9548 +#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 +#define GL_RENDER_GPU_MASK_NV 0x9558 + +typedef void (GLAPIENTRY * PFNGLMULTICASTBARRIERNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GLAPIENTRY * PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (GLAPIENTRY * PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); +typedef void (GLAPIENTRY * PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); + +#define glMulticastBarrierNV GLEW_GET_FUN(__glewMulticastBarrierNV) +#define glMulticastBlitFramebufferNV GLEW_GET_FUN(__glewMulticastBlitFramebufferNV) +#define glMulticastBufferSubDataNV GLEW_GET_FUN(__glewMulticastBufferSubDataNV) +#define glMulticastCopyBufferSubDataNV GLEW_GET_FUN(__glewMulticastCopyBufferSubDataNV) +#define glMulticastCopyImageSubDataNV GLEW_GET_FUN(__glewMulticastCopyImageSubDataNV) +#define glMulticastFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewMulticastFramebufferSampleLocationsfvNV) +#define glMulticastGetQueryObjecti64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjecti64vNV) +#define glMulticastGetQueryObjectivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectivNV) +#define glMulticastGetQueryObjectui64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjectui64vNV) +#define glMulticastGetQueryObjectuivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectuivNV) +#define glMulticastWaitSyncNV GLEW_GET_FUN(__glewMulticastWaitSyncNV) +#define glRenderGpuMaskNV GLEW_GET_FUN(__glewRenderGpuMaskNV) + +#define GLEW_NV_gpu_multicast GLEW_GET_VAR(__GLEW_NV_gpu_multicast) + +#endif /* GL_NV_gpu_multicast */ + /* --------------------------- GL_NV_gpu_program4 -------------------------- */ #ifndef GL_NV_gpu_program4 @@ -13304,6 +16316,30 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); #endif /* GL_NV_half_float */ +/* -------------------------- GL_NV_image_formats -------------------------- */ + +#ifndef GL_NV_image_formats +#define GL_NV_image_formats 1 + +#define GLEW_NV_image_formats GLEW_GET_VAR(__GLEW_NV_image_formats) + +#endif /* GL_NV_image_formats */ + +/* ------------------------- GL_NV_instanced_arrays ------------------------ */ + +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorNV GLEW_GET_FUN(__glewVertexAttribDivisorNV) + +#define GLEW_NV_instanced_arrays GLEW_GET_VAR(__GLEW_NV_instanced_arrays) + +#endif /* GL_NV_instanced_arrays */ + /* ------------------- GL_NV_internalformat_sample_query ------------------- */ #ifndef GL_NV_internalformat_sample_query @@ -13334,6 +16370,108 @@ typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, #endif /* GL_NV_light_max_exponent */ +/* ------------------------ GL_NV_memory_attachment ------------------------ */ + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 + +#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 +#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 +#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 +#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 +#define GL_MEMORY_ATTACHABLE_NV 0x95A8 +#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 +#define GL_DETACHED_TEXTURES_NV 0x95AA +#define GL_DETACHED_BUFFERS_NV 0x95AB +#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC +#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD + +typedef void (GLAPIENTRY * PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); +typedef void (GLAPIENTRY * PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); + +#define glBufferAttachMemoryNV GLEW_GET_FUN(__glewBufferAttachMemoryNV) +#define glGetMemoryObjectDetachedResourcesuivNV GLEW_GET_FUN(__glewGetMemoryObjectDetachedResourcesuivNV) +#define glNamedBufferAttachMemoryNV GLEW_GET_FUN(__glewNamedBufferAttachMemoryNV) +#define glResetMemoryObjectParameterNV GLEW_GET_FUN(__glewResetMemoryObjectParameterNV) +#define glTexAttachMemoryNV GLEW_GET_FUN(__glewTexAttachMemoryNV) +#define glTextureAttachMemoryNV GLEW_GET_FUN(__glewTextureAttachMemoryNV) + +#define GLEW_NV_memory_attachment GLEW_GET_VAR(__GLEW_NV_memory_attachment) + +#endif /* GL_NV_memory_attachment */ + +/* --------------------------- GL_NV_mesh_shader --------------------------- */ + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 + +#define GL_MESH_SHADER_BIT_NV 0x00000040 +#define GL_TASK_SHADER_BIT_NV 0x00000080 +#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF +#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 +#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 +#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 +#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A +#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B +#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C +#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D +#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E +#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 +#define GL_MAX_MESH_VIEWS_NV 0x9557 +#define GL_MESH_SHADER_NV 0x9559 +#define GL_TASK_SHADER_NV 0x955A +#define GL_MESH_VERTICES_OUT_NV 0x9579 +#define GL_MESH_PRIMITIVES_OUT_NV 0x957A +#define GL_MESH_OUTPUT_TYPE_NV 0x957B +#define GL_MESH_SUBROUTINE_NV 0x957C +#define GL_TASK_SUBROUTINE_NV 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F +#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 + +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); + +#define glDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewDrawMeshTasksIndirectNV) +#define glDrawMeshTasksNV GLEW_GET_FUN(__glewDrawMeshTasksNV) +#define glMultiDrawMeshTasksIndirectCountNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectCountNV) +#define glMultiDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectNV) + +#define GLEW_NV_mesh_shader GLEW_GET_VAR(__GLEW_NV_mesh_shader) + +#endif /* GL_NV_mesh_shader */ + /* ----------------------- GL_NV_multisample_coverage ---------------------- */ #ifndef GL_NV_multisample_coverage @@ -13356,6 +16494,36 @@ typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, #endif /* GL_NV_multisample_filter_hint */ +/* ----------------------- GL_NV_non_square_matrices ----------------------- */ + +#ifndef GL_NV_non_square_matrices +#define GL_NV_non_square_matrices 1 + +#define GL_FLOAT_MAT2x3_NV 0x8B65 +#define GL_FLOAT_MAT2x4_NV 0x8B66 +#define GL_FLOAT_MAT3x2_NV 0x8B67 +#define GL_FLOAT_MAT3x4_NV 0x8B68 +#define GL_FLOAT_MAT4x2_NV 0x8B69 +#define GL_FLOAT_MAT4x3_NV 0x8B6A + +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); + +#define glUniformMatrix2x3fvNV GLEW_GET_FUN(__glewUniformMatrix2x3fvNV) +#define glUniformMatrix2x4fvNV GLEW_GET_FUN(__glewUniformMatrix2x4fvNV) +#define glUniformMatrix3x2fvNV GLEW_GET_FUN(__glewUniformMatrix3x2fvNV) +#define glUniformMatrix3x4fvNV GLEW_GET_FUN(__glewUniformMatrix3x4fvNV) +#define glUniformMatrix4x2fvNV GLEW_GET_FUN(__glewUniformMatrix4x2fvNV) +#define glUniformMatrix4x3fvNV GLEW_GET_FUN(__glewUniformMatrix4x3fvNV) + +#define GLEW_NV_non_square_matrices GLEW_GET_VAR(__GLEW_NV_non_square_matrices) + +#endif /* GL_NV_non_square_matrices */ + /* ------------------------- GL_NV_occlusion_query ------------------------- */ #ifndef GL_NV_occlusion_query @@ -13386,6 +16554,19 @@ typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); #endif /* GL_NV_occlusion_query */ +/* -------------------------- GL_NV_pack_subimage -------------------------- */ + +#ifndef GL_NV_pack_subimage +#define GL_NV_pack_subimage 1 + +#define GL_PACK_ROW_LENGTH_NV 0x0D02 +#define GL_PACK_SKIP_ROWS_NV 0x0D03 +#define GL_PACK_SKIP_PIXELS_NV 0x0D04 + +#define GLEW_NV_pack_subimage GLEW_GET_VAR(__GLEW_NV_pack_subimage) + +#endif /* GL_NV_pack_subimage */ + /* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ #ifndef GL_NV_packed_depth_stencil @@ -13398,6 +16579,30 @@ typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); #endif /* GL_NV_packed_depth_stencil */ +/* --------------------------- GL_NV_packed_float -------------------------- */ + +#ifndef GL_NV_packed_float +#define GL_NV_packed_float 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float GLEW_GET_VAR(__GLEW_NV_packed_float) + +#endif /* GL_NV_packed_float */ + +/* ----------------------- GL_NV_packed_float_linear ----------------------- */ + +#ifndef GL_NV_packed_float_linear +#define GL_NV_packed_float_linear 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float_linear GLEW_GET_VAR(__GLEW_NV_packed_float_linear) + +#endif /* GL_NV_packed_float_linear */ + /* --------------------- GL_NV_parameter_buffer_object --------------------- */ #ifndef GL_NV_parameter_buffer_object @@ -13730,6 +16935,20 @@ typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei n #endif /* GL_NV_path_rendering_shared_edge */ +/* ----------------------- GL_NV_pixel_buffer_object ----------------------- */ + +#ifndef GL_NV_pixel_buffer_object +#define GL_NV_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_NV 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF + +#define GLEW_NV_pixel_buffer_object GLEW_GET_VAR(__GLEW_NV_pixel_buffer_object) + +#endif /* GL_NV_pixel_buffer_object */ + /* ------------------------- GL_NV_pixel_data_range ------------------------ */ #ifndef GL_NV_pixel_data_range @@ -13752,6 +16971,17 @@ typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei le #endif /* GL_NV_pixel_data_range */ +/* ------------------------- GL_NV_platform_binary ------------------------- */ + +#ifndef GL_NV_platform_binary +#define GL_NV_platform_binary 1 + +#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B + +#define GLEW_NV_platform_binary GLEW_GET_VAR(__GLEW_NV_platform_binary) + +#endif /* GL_NV_platform_binary */ + /* --------------------------- GL_NV_point_sprite -------------------------- */ #ifndef GL_NV_point_sprite @@ -13771,6 +17001,26 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLi #endif /* GL_NV_point_sprite */ +/* --------------------------- GL_NV_polygon_mode -------------------------- */ + +#ifndef GL_NV_polygon_mode +#define GL_NV_polygon_mode 1 + +#define GL_POLYGON_MODE_NV 0x0B40 +#define GL_POINT_NV 0x1B00 +#define GL_LINE_NV 0x1B01 +#define GL_FILL_NV 0x1B02 +#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 +#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 + +typedef void (GLAPIENTRY * PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); + +#define glPolygonModeNV GLEW_GET_FUN(__glewPolygonModeNV) + +#define GLEW_NV_polygon_mode GLEW_GET_VAR(__GLEW_NV_polygon_mode) + +#endif /* GL_NV_polygon_mode */ + /* -------------------------- GL_NV_present_video -------------------------- */ #ifndef GL_NV_present_video @@ -13819,6 +17069,68 @@ typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); #endif /* GL_NV_primitive_restart */ +/* ------------------------ GL_NV_query_resource_tag ----------------------- */ + +#ifndef GL_NV_query_resource_tag +#define GL_NV_query_resource_tag 1 + +#define GLEW_NV_query_resource_tag GLEW_GET_VAR(__GLEW_NV_query_resource_tag) + +#endif /* GL_NV_query_resource_tag */ + +/* --------------------------- GL_NV_read_buffer --------------------------- */ + +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +typedef void (GLAPIENTRY * PFNGLREADBUFFERNVPROC) (GLenum mode); + +#define glReadBufferNV GLEW_GET_FUN(__glewReadBufferNV) + +#define GLEW_NV_read_buffer GLEW_GET_VAR(__GLEW_NV_read_buffer) + +#endif /* GL_NV_read_buffer */ + +/* ------------------------ GL_NV_read_buffer_front ------------------------ */ + +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +#define GLEW_NV_read_buffer_front GLEW_GET_VAR(__GLEW_NV_read_buffer_front) + +#endif /* GL_NV_read_buffer_front */ + +/* ---------------------------- GL_NV_read_depth --------------------------- */ + +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 + +#define GLEW_NV_read_depth GLEW_GET_VAR(__GLEW_NV_read_depth) + +#endif /* GL_NV_read_depth */ + +/* ------------------------ GL_NV_read_depth_stencil ----------------------- */ + +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 + +#define GLEW_NV_read_depth_stencil GLEW_GET_VAR(__GLEW_NV_read_depth_stencil) + +#endif /* GL_NV_read_depth_stencil */ + +/* --------------------------- GL_NV_read_stencil -------------------------- */ + +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 + +#define GLEW_NV_read_stencil GLEW_GET_VAR(__GLEW_NV_read_stencil) + +#endif /* GL_NV_read_stencil */ + /* ------------------------ GL_NV_register_combiners ----------------------- */ #ifndef GL_NV_register_combiners @@ -13925,6 +17237,48 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #endif /* GL_NV_register_combiners2 */ +/* ------------------- GL_NV_representative_fragment_test ------------------ */ + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 + +#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F + +#define GLEW_NV_representative_fragment_test GLEW_GET_VAR(__GLEW_NV_representative_fragment_test) + +#endif /* GL_NV_representative_fragment_test */ + +/* ------------------ GL_NV_robustness_video_memory_purge ------------------ */ + +#ifndef GL_NV_robustness_video_memory_purge +#define GL_NV_robustness_video_memory_purge 1 + +#define GL_PURGED_CONTEXT_RESET_NV 0x92BB + +#define GLEW_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_NV_robustness_video_memory_purge) + +#endif /* GL_NV_robustness_video_memory_purge */ + +/* --------------------------- GL_NV_sRGB_formats -------------------------- */ + +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 + +#define GL_ETC1_SRGB8_NV 0x88EE +#define GL_SRGB8_NV 0x8C41 +#define GL_SLUMINANCE_ALPHA_NV 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 +#define GL_SLUMINANCE_NV 0x8C46 +#define GL_SLUMINANCE8_NV 0x8C47 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F + +#define GLEW_NV_sRGB_formats GLEW_GET_VAR(__GLEW_NV_sRGB_formats) + +#endif /* GL_NV_sRGB_formats */ + /* ------------------------- GL_NV_sample_locations ------------------------ */ #ifndef GL_NV_sample_locations @@ -13941,9 +17295,11 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v); typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLRESOLVEDEPTHVALUESNVPROC) (void); #define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV) #define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV) +#define glResolveDepthValuesNV GLEW_GET_FUN(__glewResolveDepthValuesNV) #define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations) @@ -13958,6 +17314,24 @@ typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint #endif /* GL_NV_sample_mask_override_coverage */ +/* ------------------------ GL_NV_scissor_exclusive ------------------------ */ + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 + +#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 +#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 + +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glScissorExclusiveArrayvNV GLEW_GET_FUN(__glewScissorExclusiveArrayvNV) +#define glScissorExclusiveNV GLEW_GET_FUN(__glewScissorExclusiveNV) + +#define GLEW_NV_scissor_exclusive GLEW_GET_VAR(__GLEW_NV_scissor_exclusive) + +#endif /* GL_NV_scissor_exclusive */ + /* ---------------------- GL_NV_shader_atomic_counters --------------------- */ #ifndef GL_NV_shader_atomic_counters @@ -13976,6 +17350,15 @@ typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint #endif /* GL_NV_shader_atomic_float */ +/* ---------------------- GL_NV_shader_atomic_float64 ---------------------- */ + +#ifndef GL_NV_shader_atomic_float64 +#define GL_NV_shader_atomic_float64 1 + +#define GLEW_NV_shader_atomic_float64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_float64) + +#endif /* GL_NV_shader_atomic_float64 */ + /* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */ #ifndef GL_NV_shader_atomic_fp16_vector @@ -14035,6 +17418,15 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_buffer_load */ +/* ---------------- GL_NV_shader_noperspective_interpolation --------------- */ + +#ifndef GL_NV_shader_noperspective_interpolation +#define GL_NV_shader_noperspective_interpolation 1 + +#define GLEW_NV_shader_noperspective_interpolation GLEW_GET_VAR(__GLEW_NV_shader_noperspective_interpolation) + +#endif /* GL_NV_shader_noperspective_interpolation */ + /* ------------------- GL_NV_shader_storage_buffer_object ------------------ */ #ifndef GL_NV_shader_storage_buffer_object @@ -14044,6 +17436,26 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_storage_buffer_object */ +/* ------------------- GL_NV_shader_subgroup_partitioned ------------------- */ + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 + +#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 + +#define GLEW_NV_shader_subgroup_partitioned GLEW_GET_VAR(__GLEW_NV_shader_subgroup_partitioned) + +#endif /* GL_NV_shader_subgroup_partitioned */ + +/* --------------------- GL_NV_shader_texture_footprint -------------------- */ + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 + +#define GLEW_NV_shader_texture_footprint GLEW_GET_VAR(__GLEW_NV_shader_texture_footprint) + +#endif /* GL_NV_shader_texture_footprint */ + /* ----------------------- GL_NV_shader_thread_group ----------------------- */ #ifndef GL_NV_shader_thread_group @@ -14066,6 +17478,82 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_thread_shuffle */ +/* ------------------------ GL_NV_shading_rate_image ----------------------- */ + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 + +#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B +#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C +#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D +#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E +#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F +#define GL_SHADING_RATE_IMAGE_NV 0x9563 +#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 +#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 +#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 +#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A +#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B +#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C +#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D +#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E +#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F +#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE +#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF +#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 + +typedef void (GLAPIENTRY * PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum* rate); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint* location); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLenum order); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum* rates); +typedef void (GLAPIENTRY * PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint* locations); + +#define glBindShadingRateImageNV GLEW_GET_FUN(__glewBindShadingRateImageNV) +#define glGetShadingRateImagePaletteNV GLEW_GET_FUN(__glewGetShadingRateImagePaletteNV) +#define glGetShadingRateSampleLocationivNV GLEW_GET_FUN(__glewGetShadingRateSampleLocationivNV) +#define glShadingRateImageBarrierNV GLEW_GET_FUN(__glewShadingRateImageBarrierNV) +#define glShadingRateImagePaletteNV GLEW_GET_FUN(__glewShadingRateImagePaletteNV) +#define glShadingRateSampleOrderCustomNV GLEW_GET_FUN(__glewShadingRateSampleOrderCustomNV) + +#define GLEW_NV_shading_rate_image GLEW_GET_VAR(__GLEW_NV_shading_rate_image) + +#endif /* GL_NV_shading_rate_image */ + +/* ---------------------- GL_NV_shadow_samplers_array ---------------------- */ + +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 + +#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 + +#define GLEW_NV_shadow_samplers_array GLEW_GET_VAR(__GLEW_NV_shadow_samplers_array) + +#endif /* GL_NV_shadow_samplers_array */ + +/* ----------------------- GL_NV_shadow_samplers_cube ---------------------- */ + +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 + +#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 + +#define GLEW_NV_shadow_samplers_cube GLEW_GET_VAR(__GLEW_NV_shadow_samplers_cube) + +#endif /* GL_NV_shadow_samplers_cube */ + +/* ---------------------- GL_NV_stereo_view_rendering ---------------------- */ + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 + +#define GLEW_NV_stereo_view_rendering GLEW_GET_VAR(__GLEW_NV_stereo_view_rendering) + +#endif /* GL_NV_stereo_view_rendering */ + /* ---------------------- GL_NV_tessellation_program5 ---------------------- */ #ifndef GL_NV_tessellation_program5 @@ -14106,6 +17594,37 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_texgen_reflection */ +/* -------------------------- GL_NV_texture_array -------------------------- */ + +#ifndef GL_NV_texture_array +#define GL_NV_texture_array 1 + +#define GL_UNPACK_SKIP_IMAGES_NV 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_NV 0x806E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF +#define GL_TEXTURE_2D_ARRAY_NV 0x8C1A +#define GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4 +#define GL_SAMPLER_2D_ARRAY_NV 0x8DC1 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERNVPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DNV GLEW_GET_FUN(__glewCompressedTexImage3DNV) +#define glCompressedTexSubImage3DNV GLEW_GET_FUN(__glewCompressedTexSubImage3DNV) +#define glCopyTexSubImage3DNV GLEW_GET_FUN(__glewCopyTexSubImage3DNV) +#define glFramebufferTextureLayerNV GLEW_GET_FUN(__glewFramebufferTextureLayerNV) +#define glTexImage3DNV GLEW_GET_FUN(__glewTexImage3DNV) +#define glTexSubImage3DNV GLEW_GET_FUN(__glewTexSubImage3DNV) + +#define GLEW_NV_texture_array GLEW_GET_VAR(__GLEW_NV_texture_array) + +#endif /* GL_NV_texture_array */ + /* ------------------------- GL_NV_texture_barrier ------------------------- */ #ifndef GL_NV_texture_barrier @@ -14119,6 +17638,55 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); #endif /* GL_NV_texture_barrier */ +/* ----------------------- GL_NV_texture_border_clamp ---------------------- */ + +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 +#define GL_CLAMP_TO_BORDER_NV 0x812D + +#define GLEW_NV_texture_border_clamp GLEW_GET_VAR(__GLEW_NV_texture_border_clamp) + +#endif /* GL_NV_texture_border_clamp */ + +/* --------------------- GL_NV_texture_compression_latc -------------------- */ + +#ifndef GL_NV_texture_compression_latc +#define GL_NV_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73 + +#define GLEW_NV_texture_compression_latc GLEW_GET_VAR(__GLEW_NV_texture_compression_latc) + +#endif /* GL_NV_texture_compression_latc */ + +/* --------------------- GL_NV_texture_compression_s3tc -------------------- */ + +#ifndef GL_NV_texture_compression_s3tc +#define GL_NV_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3 + +#define GLEW_NV_texture_compression_s3tc GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc) + +#endif /* GL_NV_texture_compression_s3tc */ + +/* ----------------- GL_NV_texture_compression_s3tc_update ----------------- */ + +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 + +#define GLEW_NV_texture_compression_s3tc_update GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc_update) + +#endif /* GL_NV_texture_compression_s3tc_update */ + /* --------------------- GL_NV_texture_compression_vtc --------------------- */ #ifndef GL_NV_texture_compression_vtc @@ -14180,6 +17748,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture #endif /* GL_NV_texture_multisample */ +/* ---------------------- GL_NV_texture_npot_2D_mipmap --------------------- */ + +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 + +#define GLEW_NV_texture_npot_2D_mipmap GLEW_GET_VAR(__GLEW_NV_texture_npot_2D_mipmap) + +#endif /* GL_NV_texture_npot_2D_mipmap */ + /* ------------------------ GL_NV_texture_rectangle ------------------------ */ #ifndef GL_NV_texture_rectangle @@ -14194,6 +17771,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture #endif /* GL_NV_texture_rectangle */ +/* ------------------- GL_NV_texture_rectangle_compressed ------------------ */ + +#ifndef GL_NV_texture_rectangle_compressed +#define GL_NV_texture_rectangle_compressed 1 + +#define GLEW_NV_texture_rectangle_compressed GLEW_GET_VAR(__GLEW_NV_texture_rectangle_compressed) + +#endif /* GL_NV_texture_rectangle_compressed */ + /* -------------------------- GL_NV_texture_shader ------------------------- */ #ifndef GL_NV_texture_shader @@ -14482,6 +18068,19 @@ typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV #endif /* GL_NV_vdpau_interop */ +/* -------------------------- GL_NV_vdpau_interop2 ------------------------- */ + +#ifndef GL_NV_vdpau_interop2 +#define GL_NV_vdpau_interop2 1 + +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); + +#define glVDPAURegisterVideoSurfaceWithPictureStructureNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceWithPictureStructureNV) + +#define GLEW_NV_vdpau_interop2 GLEW_GET_VAR(__GLEW_NV_vdpau_interop2) + +#endif /* GL_NV_vdpau_interop2 */ + /* ------------------------ GL_NV_vertex_array_range ----------------------- */ #ifndef GL_NV_vertex_array_range @@ -14967,6 +18566,50 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_NV_video_capture */ +/* -------------------------- GL_NV_viewport_array ------------------------- */ + +#ifndef GL_NV_viewport_array +#define GL_NV_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS_NV 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); +typedef void (GLAPIENTRY * PFNGLDISABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat* data); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayfvNV GLEW_GET_FUN(__glewDepthRangeArrayfvNV) +#define glDepthRangeIndexedfNV GLEW_GET_FUN(__glewDepthRangeIndexedfNV) +#define glDisableiNV GLEW_GET_FUN(__glewDisableiNV) +#define glEnableiNV GLEW_GET_FUN(__glewEnableiNV) +#define glGetFloati_vNV GLEW_GET_FUN(__glewGetFloati_vNV) +#define glIsEnablediNV GLEW_GET_FUN(__glewIsEnablediNV) +#define glScissorArrayvNV GLEW_GET_FUN(__glewScissorArrayvNV) +#define glScissorIndexedNV GLEW_GET_FUN(__glewScissorIndexedNV) +#define glScissorIndexedvNV GLEW_GET_FUN(__glewScissorIndexedvNV) +#define glViewportArrayvNV GLEW_GET_FUN(__glewViewportArrayvNV) +#define glViewportIndexedfNV GLEW_GET_FUN(__glewViewportIndexedfNV) +#define glViewportIndexedfvNV GLEW_GET_FUN(__glewViewportIndexedfvNV) + +#define GLEW_NV_viewport_array GLEW_GET_VAR(__GLEW_NV_viewport_array) + +#endif /* GL_NV_viewport_array */ + /* ------------------------- GL_NV_viewport_array2 ------------------------- */ #ifndef GL_NV_viewport_array2 @@ -14976,6 +18619,122 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_NV_viewport_array2 */ +/* ------------------------- GL_NV_viewport_swizzle ------------------------ */ + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 + +#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 +#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 +#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 +#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A +#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B + +typedef void (GLAPIENTRY * PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); + +#define glViewportSwizzleNV GLEW_GET_FUN(__glewViewportSwizzleNV) + +#define GLEW_NV_viewport_swizzle GLEW_GET_VAR(__GLEW_NV_viewport_swizzle) + +#endif /* GL_NV_viewport_swizzle */ + +/* ---------------------------- GL_OES_EGL_image --------------------------- */ + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); + +#define glEGLImageTargetRenderbufferStorageOES GLEW_GET_FUN(__glewEGLImageTargetRenderbufferStorageOES) +#define glEGLImageTargetTexture2DOES GLEW_GET_FUN(__glewEGLImageTargetTexture2DOES) + +#define GLEW_OES_EGL_image GLEW_GET_VAR(__GLEW_OES_EGL_image) + +#endif /* GL_OES_EGL_image */ + +/* ----------------------- GL_OES_EGL_image_external ----------------------- */ + +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_OES_EGL_image_external GLEW_GET_VAR(__GLEW_OES_EGL_image_external) + +#endif /* GL_OES_EGL_image_external */ + +/* -------------------- GL_OES_EGL_image_external_essl3 -------------------- */ + +#ifndef GL_OES_EGL_image_external_essl3 +#define GL_OES_EGL_image_external_essl3 1 + +#define GLEW_OES_EGL_image_external_essl3 GLEW_GET_VAR(__GLEW_OES_EGL_image_external_essl3) + +#endif /* GL_OES_EGL_image_external_essl3 */ + +/* --------------------- GL_OES_blend_equation_separate -------------------- */ + +#ifndef GL_OES_blend_equation_separate +#define GL_OES_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_OES 0x8009 +#define GL_BLEND_EQUATION_ALPHA_OES 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateOES GLEW_GET_FUN(__glewBlendEquationSeparateOES) + +#define GLEW_OES_blend_equation_separate GLEW_GET_VAR(__GLEW_OES_blend_equation_separate) + +#endif /* GL_OES_blend_equation_separate */ + +/* ----------------------- GL_OES_blend_func_separate ---------------------- */ + +#ifndef GL_OES_blend_func_separate +#define GL_OES_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_OES 0x80C8 +#define GL_BLEND_SRC_RGB_OES 0x80C9 +#define GL_BLEND_DST_ALPHA_OES 0x80CA +#define GL_BLEND_SRC_ALPHA_OES 0x80CB + +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +#define glBlendFuncSeparateOES GLEW_GET_FUN(__glewBlendFuncSeparateOES) + +#define GLEW_OES_blend_func_separate GLEW_GET_VAR(__GLEW_OES_blend_func_separate) + +#endif /* GL_OES_blend_func_separate */ + +/* ------------------------- GL_OES_blend_subtract ------------------------- */ + +#ifndef GL_OES_blend_subtract +#define GL_OES_blend_subtract 1 + +#define GL_FUNC_ADD_OES 0x8006 +#define GL_BLEND_EQUATION_OES 0x8009 +#define GL_FUNC_SUBTRACT_OES 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONOESPROC) (GLenum mode); + +#define glBlendEquationOES GLEW_GET_FUN(__glewBlendEquationOES) + +#define GLEW_OES_blend_subtract GLEW_GET_VAR(__GLEW_OES_blend_subtract) + +#endif /* GL_OES_blend_subtract */ + /* ------------------------ GL_OES_byte_coordinates ------------------------ */ #ifndef GL_OES_byte_coordinates @@ -14985,6 +18744,17 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_byte_coordinates */ +/* ------------------ GL_OES_compressed_ETC1_RGB8_texture ------------------ */ + +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 + +#define GL_ETC1_RGB8_OES 0x8D64 + +#define GLEW_OES_compressed_ETC1_RGB8_texture GLEW_GET_VAR(__GLEW_OES_compressed_ETC1_RGB8_texture) + +#endif /* GL_OES_compressed_ETC1_RGB8_texture */ + /* ------------------- GL_OES_compressed_paletted_texture ------------------ */ #ifndef GL_OES_compressed_paletted_texture @@ -15005,6 +18775,449 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_compressed_paletted_texture */ +/* --------------------------- GL_OES_copy_image --------------------------- */ + +#ifndef GL_OES_copy_image +#define GL_OES_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); + +#define glCopyImageSubDataOES GLEW_GET_FUN(__glewCopyImageSubDataOES) + +#define GLEW_OES_copy_image GLEW_GET_VAR(__GLEW_OES_copy_image) + +#endif /* GL_OES_copy_image */ + +/* ----------------------------- GL_OES_depth24 ---------------------------- */ + +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 + +#define GL_DEPTH_COMPONENT24_OES 0x81A6 + +#define GLEW_OES_depth24 GLEW_GET_VAR(__GLEW_OES_depth24) + +#endif /* GL_OES_depth24 */ + +/* ----------------------------- GL_OES_depth32 ---------------------------- */ + +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 + +#define GL_DEPTH_COMPONENT32_OES 0x81A7 + +#define GLEW_OES_depth32 GLEW_GET_VAR(__GLEW_OES_depth32) + +#endif /* GL_OES_depth32 */ + +/* -------------------------- GL_OES_depth_texture ------------------------- */ + +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 + +#define GLEW_OES_depth_texture GLEW_GET_VAR(__GLEW_OES_depth_texture) + +#endif /* GL_OES_depth_texture */ + +/* --------------------- GL_OES_depth_texture_cube_map --------------------- */ + +#ifndef GL_OES_depth_texture_cube_map +#define GL_OES_depth_texture_cube_map 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_depth_texture_cube_map GLEW_GET_VAR(__GLEW_OES_depth_texture_cube_map) + +#endif /* GL_OES_depth_texture_cube_map */ + +/* ---------------------- GL_OES_draw_buffers_indexed ---------------------- */ + +#ifndef GL_OES_draw_buffers_indexed +#define GL_OES_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIOESPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIOESPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiOES GLEW_GET_FUN(__glewBlendEquationSeparateiOES) +#define glBlendEquationiOES GLEW_GET_FUN(__glewBlendEquationiOES) +#define glBlendFuncSeparateiOES GLEW_GET_FUN(__glewBlendFuncSeparateiOES) +#define glBlendFunciOES GLEW_GET_FUN(__glewBlendFunciOES) +#define glColorMaskiOES GLEW_GET_FUN(__glewColorMaskiOES) +#define glDisableiOES GLEW_GET_FUN(__glewDisableiOES) +#define glEnableiOES GLEW_GET_FUN(__glewEnableiOES) +#define glIsEnablediOES GLEW_GET_FUN(__glewIsEnablediOES) + +#define GLEW_OES_draw_buffers_indexed GLEW_GET_VAR(__GLEW_OES_draw_buffers_indexed) + +#endif /* GL_OES_draw_buffers_indexed */ + +/* -------------------------- GL_OES_draw_texture -------------------------- */ + +#ifndef GL_OES_draw_texture +#define GL_OES_draw_texture 1 + +#define GL_TEXTURE_CROP_RECT_OES 0x8B9D + +#define GLEW_OES_draw_texture GLEW_GET_VAR(__GLEW_OES_draw_texture) + +#endif /* GL_OES_draw_texture */ + +/* ----------------------- GL_OES_element_index_uint ----------------------- */ + +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 + +#define GL_UNSIGNED_INT 0x1405 + +#define GLEW_OES_element_index_uint GLEW_GET_VAR(__GLEW_OES_element_index_uint) + +#endif /* GL_OES_element_index_uint */ + +/* --------------------- GL_OES_extended_matrix_palette -------------------- */ + +#ifndef GL_OES_extended_matrix_palette +#define GL_OES_extended_matrix_palette 1 + +#define GLEW_OES_extended_matrix_palette GLEW_GET_VAR(__GLEW_OES_extended_matrix_palette) + +#endif /* GL_OES_extended_matrix_palette */ + +/* ------------------------ GL_OES_fbo_render_mipmap ----------------------- */ + +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 + +#define GLEW_OES_fbo_render_mipmap GLEW_GET_VAR(__GLEW_OES_fbo_render_mipmap) + +#endif /* GL_OES_fbo_render_mipmap */ + +/* --------------------- GL_OES_fragment_precision_high -------------------- */ + +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 + +#define GLEW_OES_fragment_precision_high GLEW_GET_VAR(__GLEW_OES_fragment_precision_high) + +#endif /* GL_OES_fragment_precision_high */ + +/* ----------------------- GL_OES_framebuffer_object ----------------------- */ + +#ifndef GL_OES_framebuffer_object +#define GL_OES_framebuffer_object 1 + +#define GL_NONE_OES 0 +#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 +#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 +#define GL_RENDERBUFFER_BINDING_OES 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD +#define GL_COLOR_ATTACHMENT0_OES 0x8CE0 +#define GL_DEPTH_ATTACHMENT_OES 0x8D00 +#define GL_STENCIL_ATTACHMENT_OES 0x8D20 +#define GL_FRAMEBUFFER_OES 0x8D40 +#define GL_RENDERBUFFER_OES 0x8D41 +#define GL_RENDERBUFFER_WIDTH_OES 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#define GL_STENCIL_INDEX8_OES 0x8D48 +#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 +#define GL_RGB565_OES 0x8D62 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebufferOES GLEW_GET_FUN(__glewBindFramebufferOES) +#define glBindRenderbufferOES GLEW_GET_FUN(__glewBindRenderbufferOES) +#define glCheckFramebufferStatusOES GLEW_GET_FUN(__glewCheckFramebufferStatusOES) +#define glDeleteFramebuffersOES GLEW_GET_FUN(__glewDeleteFramebuffersOES) +#define glDeleteRenderbuffersOES GLEW_GET_FUN(__glewDeleteRenderbuffersOES) +#define glFramebufferRenderbufferOES GLEW_GET_FUN(__glewFramebufferRenderbufferOES) +#define glFramebufferTexture2DOES GLEW_GET_FUN(__glewFramebufferTexture2DOES) +#define glGenFramebuffersOES GLEW_GET_FUN(__glewGenFramebuffersOES) +#define glGenRenderbuffersOES GLEW_GET_FUN(__glewGenRenderbuffersOES) +#define glGenerateMipmapOES GLEW_GET_FUN(__glewGenerateMipmapOES) +#define glGetFramebufferAttachmentParameterivOES GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivOES) +#define glGetRenderbufferParameterivOES GLEW_GET_FUN(__glewGetRenderbufferParameterivOES) +#define glIsFramebufferOES GLEW_GET_FUN(__glewIsFramebufferOES) +#define glIsRenderbufferOES GLEW_GET_FUN(__glewIsRenderbufferOES) +#define glRenderbufferStorageOES GLEW_GET_FUN(__glewRenderbufferStorageOES) + +#define GLEW_OES_framebuffer_object GLEW_GET_VAR(__GLEW_OES_framebuffer_object) + +#endif /* GL_OES_framebuffer_object */ + +/* ----------------------- GL_OES_geometry_point_size ---------------------- */ + +#ifndef GL_OES_geometry_point_size +#define GL_OES_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_point_size GLEW_GET_VAR(__GLEW_OES_geometry_point_size) + +#endif /* GL_OES_geometry_point_size */ + +/* ------------------------- GL_OES_geometry_shader ------------------------ */ + +#ifndef GL_OES_geometry_shader +#define GL_OES_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_shader GLEW_GET_VAR(__GLEW_OES_geometry_shader) + +#endif /* GL_OES_geometry_shader */ + +/* ----------------------- GL_OES_get_program_binary ----------------------- */ + +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 + +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); + +#define glGetProgramBinaryOES GLEW_GET_FUN(__glewGetProgramBinaryOES) +#define glProgramBinaryOES GLEW_GET_FUN(__glewProgramBinaryOES) + +#define GLEW_OES_get_program_binary GLEW_GET_VAR(__GLEW_OES_get_program_binary) + +#endif /* GL_OES_get_program_binary */ + +/* --------------------------- GL_OES_gpu_shader5 -------------------------- */ + +#ifndef GL_OES_gpu_shader5 +#define GL_OES_gpu_shader5 1 + +#define GLEW_OES_gpu_shader5 GLEW_GET_VAR(__GLEW_OES_gpu_shader5) + +#endif /* GL_OES_gpu_shader5 */ + +/* ---------------------------- GL_OES_mapbuffer --------------------------- */ + +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 + +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFEROESPROC) (GLenum target); + +#define glGetBufferPointervOES GLEW_GET_FUN(__glewGetBufferPointervOES) +#define glMapBufferOES GLEW_GET_FUN(__glewMapBufferOES) +#define glUnmapBufferOES GLEW_GET_FUN(__glewUnmapBufferOES) + +#define GLEW_OES_mapbuffer GLEW_GET_VAR(__GLEW_OES_mapbuffer) + +#endif /* GL_OES_mapbuffer */ + +/* --------------------------- GL_OES_matrix_get --------------------------- */ + +#ifndef GL_OES_matrix_get +#define GL_OES_matrix_get 1 + +#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898d +#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898e +#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898f + +#define GLEW_OES_matrix_get GLEW_GET_VAR(__GLEW_OES_matrix_get) + +#endif /* GL_OES_matrix_get */ + +/* ------------------------- GL_OES_matrix_palette ------------------------- */ + +#ifndef GL_OES_matrix_palette +#define GL_OES_matrix_palette 1 + +#define GL_MAX_VERTEX_UNITS_OES 0x86A4 +#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC +#define GL_WEIGHT_ARRAY_OES 0x86AD +#define GL_MATRIX_PALETTE_OES 0x8840 +#define GL_MAX_PALETTE_MATRICES_OES 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 +#define GL_MATRIX_INDEX_ARRAY_OES 0x8844 +#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E +#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E + +typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); + +#define glCurrentPaletteMatrixOES GLEW_GET_FUN(__glewCurrentPaletteMatrixOES) +#define glMatrixIndexPointerOES GLEW_GET_FUN(__glewMatrixIndexPointerOES) +#define glWeightPointerOES GLEW_GET_FUN(__glewWeightPointerOES) + +#define GLEW_OES_matrix_palette GLEW_GET_VAR(__GLEW_OES_matrix_palette) + +#endif /* GL_OES_matrix_palette */ + +/* ---------------------- GL_OES_packed_depth_stencil ---------------------- */ + +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_packed_depth_stencil GLEW_GET_VAR(__GLEW_OES_packed_depth_stencil) + +#endif /* GL_OES_packed_depth_stencil */ + +/* ------------------------ GL_OES_point_size_array ------------------------ */ + +#ifndef GL_OES_point_size_array +#define GL_OES_point_size_array 1 + +#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C +#define GL_POINT_SIZE_ARRAY_OES 0x8B9C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F + +#define GLEW_OES_point_size_array GLEW_GET_VAR(__GLEW_OES_point_size_array) + +#endif /* GL_OES_point_size_array */ + +/* -------------------------- GL_OES_point_sprite -------------------------- */ + +#ifndef GL_OES_point_sprite +#define GL_OES_point_sprite 1 + +#define GL_POINT_SPRITE_OES 0x8861 +#define GL_COORD_REPLACE_OES 0x8862 + +#define GLEW_OES_point_sprite GLEW_GET_VAR(__GLEW_OES_point_sprite) + +#endif /* GL_OES_point_sprite */ + /* --------------------------- GL_OES_read_format -------------------------- */ #ifndef GL_OES_read_format @@ -15017,6 +19230,99 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_read_format */ +/* --------------------- GL_OES_required_internalformat -------------------- */ + +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 + +#define GL_ALPHA8_OES 0x803C +#define GL_LUMINANCE8_OES 0x8040 +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_RGB8_OES 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGBA8_OES 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#define GL_RGB565_OES 0x8D62 + +#define GLEW_OES_required_internalformat GLEW_GET_VAR(__GLEW_OES_required_internalformat) + +#endif /* GL_OES_required_internalformat */ + +/* --------------------------- GL_OES_rgb8_rgba8 --------------------------- */ + +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 + +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 + +#define GLEW_OES_rgb8_rgba8 GLEW_GET_VAR(__GLEW_OES_rgb8_rgba8) + +#endif /* GL_OES_rgb8_rgba8 */ + +/* ------------------------- GL_OES_sample_shading ------------------------- */ + +#ifndef GL_OES_sample_shading +#define GL_OES_sample_shading 1 + +#define GL_SAMPLE_SHADING_OES 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); + +#define glMinSampleShadingOES GLEW_GET_FUN(__glewMinSampleShadingOES) + +#define GLEW_OES_sample_shading GLEW_GET_VAR(__GLEW_OES_sample_shading) + +#endif /* GL_OES_sample_shading */ + +/* ------------------------ GL_OES_sample_variables ------------------------ */ + +#ifndef GL_OES_sample_variables +#define GL_OES_sample_variables 1 + +#define GLEW_OES_sample_variables GLEW_GET_VAR(__GLEW_OES_sample_variables) + +#endif /* GL_OES_sample_variables */ + +/* ----------------------- GL_OES_shader_image_atomic ---------------------- */ + +#ifndef GL_OES_shader_image_atomic +#define GL_OES_shader_image_atomic 1 + +#define GLEW_OES_shader_image_atomic GLEW_GET_VAR(__GLEW_OES_shader_image_atomic) + +#endif /* GL_OES_shader_image_atomic */ + +/* ------------------------ GL_OES_shader_io_blocks ------------------------ */ + +#ifndef GL_OES_shader_io_blocks +#define GL_OES_shader_io_blocks 1 + +#define GLEW_OES_shader_io_blocks GLEW_GET_VAR(__GLEW_OES_shader_io_blocks) + +#endif /* GL_OES_shader_io_blocks */ + +/* ---------------- GL_OES_shader_multisample_interpolation ---------------- */ + +#ifndef GL_OES_shader_multisample_interpolation +#define GL_OES_shader_multisample_interpolation 1 + +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D + +#define GLEW_OES_shader_multisample_interpolation GLEW_GET_VAR(__GLEW_OES_shader_multisample_interpolation) + +#endif /* GL_OES_shader_multisample_interpolation */ + /* ------------------------ GL_OES_single_precision ------------------------ */ #ifndef GL_OES_single_precision @@ -15040,6 +19346,498 @@ typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, #endif /* GL_OES_single_precision */ +/* ---------------------- GL_OES_standard_derivatives ---------------------- */ + +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B + +#define GLEW_OES_standard_derivatives GLEW_GET_VAR(__GLEW_OES_standard_derivatives) + +#endif /* GL_OES_standard_derivatives */ + +/* ---------------------------- GL_OES_stencil1 ---------------------------- */ + +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 + +#define GL_STENCIL_INDEX1_OES 0x8D46 + +#define GLEW_OES_stencil1 GLEW_GET_VAR(__GLEW_OES_stencil1) + +#endif /* GL_OES_stencil1 */ + +/* ---------------------------- GL_OES_stencil4 ---------------------------- */ + +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 + +#define GL_STENCIL_INDEX4_OES 0x8D47 + +#define GLEW_OES_stencil4 GLEW_GET_VAR(__GLEW_OES_stencil4) + +#endif /* GL_OES_stencil4 */ + +/* ---------------------------- GL_OES_stencil8 ---------------------------- */ + +#ifndef GL_OES_stencil8 +#define GL_OES_stencil8 1 + +#define GL_STENCIL_INDEX8_OES 0x8D48 + +#define GLEW_OES_stencil8 GLEW_GET_VAR(__GLEW_OES_stencil8) + +#endif /* GL_OES_stencil8 */ + +/* ----------------------- GL_OES_surfaceless_context ---------------------- */ + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 + +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 + +#define GLEW_OES_surfaceless_context GLEW_GET_VAR(__GLEW_OES_surfaceless_context) + +#endif /* GL_OES_surfaceless_context */ + +/* --------------------- GL_OES_tessellation_point_size -------------------- */ + +#ifndef GL_OES_tessellation_point_size +#define GL_OES_tessellation_point_size 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_point_size GLEW_GET_VAR(__GLEW_OES_tessellation_point_size) + +#endif /* GL_OES_tessellation_point_size */ + +/* ----------------------- GL_OES_tessellation_shader ---------------------- */ + +#ifndef GL_OES_tessellation_shader +#define GL_OES_tessellation_shader 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_shader GLEW_GET_VAR(__GLEW_OES_tessellation_shader) + +#endif /* GL_OES_tessellation_shader */ + +/* --------------------------- GL_OES_texture_3D --------------------------- */ + +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 + +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DOES GLEW_GET_FUN(__glewCompressedTexImage3DOES) +#define glCompressedTexSubImage3DOES GLEW_GET_FUN(__glewCompressedTexSubImage3DOES) +#define glCopyTexSubImage3DOES GLEW_GET_FUN(__glewCopyTexSubImage3DOES) +#define glFramebufferTexture3DOES GLEW_GET_FUN(__glewFramebufferTexture3DOES) +#define glTexImage3DOES GLEW_GET_FUN(__glewTexImage3DOES) +#define glTexSubImage3DOES GLEW_GET_FUN(__glewTexSubImage3DOES) + +#define GLEW_OES_texture_3D GLEW_GET_VAR(__GLEW_OES_texture_3D) + +#endif /* GL_OES_texture_3D */ + +/* ---------------------- GL_OES_texture_border_clamp ---------------------- */ + +#ifndef GL_OES_texture_border_clamp +#define GL_OES_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 +#define GL_CLAMP_TO_BORDER_OES 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivOES GLEW_GET_FUN(__glewGetSamplerParameterIivOES) +#define glGetSamplerParameterIuivOES GLEW_GET_FUN(__glewGetSamplerParameterIuivOES) +#define glGetTexParameterIivOES GLEW_GET_FUN(__glewGetTexParameterIivOES) +#define glGetTexParameterIuivOES GLEW_GET_FUN(__glewGetTexParameterIuivOES) +#define glSamplerParameterIivOES GLEW_GET_FUN(__glewSamplerParameterIivOES) +#define glSamplerParameterIuivOES GLEW_GET_FUN(__glewSamplerParameterIuivOES) +#define glTexParameterIivOES GLEW_GET_FUN(__glewTexParameterIivOES) +#define glTexParameterIuivOES GLEW_GET_FUN(__glewTexParameterIuivOES) + +#define GLEW_OES_texture_border_clamp GLEW_GET_VAR(__GLEW_OES_texture_border_clamp) + +#endif /* GL_OES_texture_border_clamp */ + +/* ------------------------- GL_OES_texture_buffer ------------------------- */ + +#ifndef GL_OES_texture_buffer +#define GL_OES_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A +#define GL_TEXTURE_BUFFER_OES 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D +#define GL_SAMPLER_BUFFER_OES 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 +#define GL_IMAGE_BUFFER_OES 0x9051 +#define GL_INT_IMAGE_BUFFER_OES 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D +#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F + +typedef void (GLAPIENTRY * PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); + +#define glTexBufferOES GLEW_GET_FUN(__glewTexBufferOES) +#define glTexBufferRangeOES GLEW_GET_FUN(__glewTexBufferRangeOES) + +#define GLEW_OES_texture_buffer GLEW_GET_VAR(__GLEW_OES_texture_buffer) + +#endif /* GL_OES_texture_buffer */ + +/* -------------------- GL_OES_texture_compression_astc -------------------- */ + +#ifndef GL_OES_texture_compression_astc +#define GL_OES_texture_compression_astc 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 + +#define GLEW_OES_texture_compression_astc GLEW_GET_VAR(__GLEW_OES_texture_compression_astc) + +#endif /* GL_OES_texture_compression_astc */ + +/* ------------------------ GL_OES_texture_cube_map ------------------------ */ + +#ifndef GL_OES_texture_cube_map +#define GL_OES_texture_cube_map 1 + +#define GL_TEXTURE_GEN_MODE_OES 0x2500 +#define GL_NORMAL_MAP_OES 0x8511 +#define GL_REFLECTION_MAP_OES 0x8512 +#define GL_TEXTURE_CUBE_MAP_OES 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C +#define GL_TEXTURE_GEN_STR_OES 0x8D60 + +typedef void (GLAPIENTRY * PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed* params); + +#define glGetTexGenfvOES GLEW_GET_FUN(__glewGetTexGenfvOES) +#define glGetTexGenivOES GLEW_GET_FUN(__glewGetTexGenivOES) +#define glGetTexGenxvOES GLEW_GET_FUN(__glewGetTexGenxvOES) +#define glTexGenfOES GLEW_GET_FUN(__glewTexGenfOES) +#define glTexGenfvOES GLEW_GET_FUN(__glewTexGenfvOES) +#define glTexGeniOES GLEW_GET_FUN(__glewTexGeniOES) +#define glTexGenivOES GLEW_GET_FUN(__glewTexGenivOES) +#define glTexGenxOES GLEW_GET_FUN(__glewTexGenxOES) +#define glTexGenxvOES GLEW_GET_FUN(__glewTexGenxvOES) + +#define GLEW_OES_texture_cube_map GLEW_GET_VAR(__GLEW_OES_texture_cube_map) + +#endif /* GL_OES_texture_cube_map */ + +/* --------------------- GL_OES_texture_cube_map_array --------------------- */ + +#ifndef GL_OES_texture_cube_map_array +#define GL_OES_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A + +#define GLEW_OES_texture_cube_map_array GLEW_GET_VAR(__GLEW_OES_texture_cube_map_array) + +#endif /* GL_OES_texture_cube_map_array */ + +/* ---------------------- GL_OES_texture_env_crossbar ---------------------- */ + +#ifndef GL_OES_texture_env_crossbar +#define GL_OES_texture_env_crossbar 1 + +#define GLEW_OES_texture_env_crossbar GLEW_GET_VAR(__GLEW_OES_texture_env_crossbar) + +#endif /* GL_OES_texture_env_crossbar */ + +/* --------------------- GL_OES_texture_mirrored_repeat -------------------- */ + +#ifndef GL_OES_texture_mirrored_repeat +#define GL_OES_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GLEW_OES_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_OES_texture_mirrored_repeat) + +#endif /* GL_OES_texture_mirrored_repeat */ + +/* -------------------------- GL_OES_texture_npot -------------------------- */ + +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 + +#define GLEW_OES_texture_npot GLEW_GET_VAR(__GLEW_OES_texture_npot) + +#endif /* GL_OES_texture_npot */ + +/* ------------------------ GL_OES_texture_stencil8 ------------------------ */ + +#ifndef GL_OES_texture_stencil8 +#define GL_OES_texture_stencil8 1 + +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GLEW_OES_texture_stencil8 GLEW_GET_VAR(__GLEW_OES_texture_stencil8) + +#endif /* GL_OES_texture_stencil8 */ + +/* -------------- GL_OES_texture_storage_multisample_2d_array -------------- */ + +#ifndef GL_OES_texture_storage_multisample_2d_array +#define GL_OES_texture_storage_multisample_2d_array 1 + +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glTexStorage3DMultisampleOES GLEW_GET_FUN(__glewTexStorage3DMultisampleOES) + +#define GLEW_OES_texture_storage_multisample_2d_array GLEW_GET_VAR(__GLEW_OES_texture_storage_multisample_2d_array) + +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +/* -------------------------- GL_OES_texture_view -------------------------- */ + +#ifndef GL_OES_texture_view +#define GL_OES_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewOES GLEW_GET_FUN(__glewTextureViewOES) + +#define GLEW_OES_texture_view GLEW_GET_VAR(__GLEW_OES_texture_view) + +#endif /* GL_OES_texture_view */ + +/* ----------------------- GL_OES_vertex_array_object ---------------------- */ + +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYOESPROC) (GLuint array); + +#define glBindVertexArrayOES GLEW_GET_FUN(__glewBindVertexArrayOES) +#define glDeleteVertexArraysOES GLEW_GET_FUN(__glewDeleteVertexArraysOES) +#define glGenVertexArraysOES GLEW_GET_FUN(__glewGenVertexArraysOES) +#define glIsVertexArrayOES GLEW_GET_FUN(__glewIsVertexArrayOES) + +#define GLEW_OES_vertex_array_object GLEW_GET_VAR(__GLEW_OES_vertex_array_object) + +#endif /* GL_OES_vertex_array_object */ + +/* ------------------------ GL_OES_vertex_half_float ----------------------- */ + +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 + +#define GL_HALF_FLOAT_OES 0x8D61 + +#define GLEW_OES_vertex_half_float GLEW_GET_VAR(__GLEW_OES_vertex_half_float) + +#endif /* GL_OES_vertex_half_float */ + +/* --------------------- GL_OES_vertex_type_10_10_10_2 --------------------- */ + +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 + +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 + +#define GLEW_OES_vertex_type_10_10_10_2 GLEW_GET_VAR(__GLEW_OES_vertex_type_10_10_10_2) + +#endif /* GL_OES_vertex_type_10_10_10_2 */ + /* ---------------------------- GL_OML_interlace --------------------------- */ #ifndef GL_OML_interlace @@ -15091,8 +19889,10 @@ typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, #define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #define glFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultiviewOVR) +#define glNamedFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewNamedFramebufferTextureMultiviewOVR) #define GLEW_OVR_multiview GLEW_GET_VAR(__GLEW_OVR_multiview) @@ -15107,6 +19907,19 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum targ #endif /* GL_OVR_multiview2 */ +/* ------------ GL_OVR_multiview_multisampled_render_to_texture ------------ */ + +#ifndef GL_OVR_multiview_multisampled_render_to_texture +#define GL_OVR_multiview_multisampled_render_to_texture 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); + +#define glFramebufferTextureMultisampleMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultisampleMultiviewOVR) + +#define GLEW_OVR_multiview_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_OVR_multiview_multisampled_render_to_texture) + +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + /* --------------------------- GL_PGI_misc_hints --------------------------- */ #ifndef GL_PGI_misc_hints @@ -15169,6 +19982,269 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum targ #endif /* GL_PGI_vertex_hints */ +/* ----------------------- GL_QCOM_YUV_texture_gather ---------------------- */ + +#ifndef GL_QCOM_YUV_texture_gather +#define GL_QCOM_YUV_texture_gather 1 + +#define GLEW_QCOM_YUV_texture_gather GLEW_GET_VAR(__GLEW_QCOM_YUV_texture_gather) + +#endif /* GL_QCOM_YUV_texture_gather */ + +/* --------------------------- GL_QCOM_alpha_test -------------------------- */ + +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 + +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 + +typedef void (GLAPIENTRY * PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); + +#define glAlphaFuncQCOM GLEW_GET_FUN(__glewAlphaFuncQCOM) + +#define GLEW_QCOM_alpha_test GLEW_GET_VAR(__GLEW_QCOM_alpha_test) + +#endif /* GL_QCOM_alpha_test */ + +/* ------------------------ GL_QCOM_binning_control ------------------------ */ + +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 + +#define GL_DONT_CARE 0x1100 +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 + +#define GLEW_QCOM_binning_control GLEW_GET_VAR(__GLEW_QCOM_binning_control) + +#endif /* GL_QCOM_binning_control */ + +/* ------------------------- GL_QCOM_driver_control ------------------------ */ + +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 + +typedef void (GLAPIENTRY * PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint* num, GLsizei size, GLuint *driverControls); + +#define glDisableDriverControlQCOM GLEW_GET_FUN(__glewDisableDriverControlQCOM) +#define glEnableDriverControlQCOM GLEW_GET_FUN(__glewEnableDriverControlQCOM) +#define glGetDriverControlStringQCOM GLEW_GET_FUN(__glewGetDriverControlStringQCOM) +#define glGetDriverControlsQCOM GLEW_GET_FUN(__glewGetDriverControlsQCOM) + +#define GLEW_QCOM_driver_control GLEW_GET_VAR(__GLEW_QCOM_driver_control) + +#endif /* GL_QCOM_driver_control */ + +/* -------------------------- GL_QCOM_extended_get ------------------------- */ + +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 + +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC + +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void** params); +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERSQCOMPROC) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXTURESQCOMPROC) (GLuint* textures, GLint maxTextures, GLint* numTextures); +typedef void (GLAPIENTRY * PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); + +#define glExtGetBufferPointervQCOM GLEW_GET_FUN(__glewExtGetBufferPointervQCOM) +#define glExtGetBuffersQCOM GLEW_GET_FUN(__glewExtGetBuffersQCOM) +#define glExtGetFramebuffersQCOM GLEW_GET_FUN(__glewExtGetFramebuffersQCOM) +#define glExtGetRenderbuffersQCOM GLEW_GET_FUN(__glewExtGetRenderbuffersQCOM) +#define glExtGetTexLevelParameterivQCOM GLEW_GET_FUN(__glewExtGetTexLevelParameterivQCOM) +#define glExtGetTexSubImageQCOM GLEW_GET_FUN(__glewExtGetTexSubImageQCOM) +#define glExtGetTexturesQCOM GLEW_GET_FUN(__glewExtGetTexturesQCOM) +#define glExtTexObjectStateOverrideiQCOM GLEW_GET_FUN(__glewExtTexObjectStateOverrideiQCOM) + +#define GLEW_QCOM_extended_get GLEW_GET_VAR(__GLEW_QCOM_extended_get) + +#endif /* GL_QCOM_extended_get */ + +/* ------------------------- GL_QCOM_extended_get2 ------------------------- */ + +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 + +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar* source, GLint* length); +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint* programs, GLint maxPrograms, GLint* numPrograms); +typedef void (GLAPIENTRY * PFNGLEXTGETSHADERSQCOMPROC) (GLuint* shaders, GLint maxShaders, GLint* numShaders); +typedef GLboolean (GLAPIENTRY * PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); + +#define glExtGetProgramBinarySourceQCOM GLEW_GET_FUN(__glewExtGetProgramBinarySourceQCOM) +#define glExtGetProgramsQCOM GLEW_GET_FUN(__glewExtGetProgramsQCOM) +#define glExtGetShadersQCOM GLEW_GET_FUN(__glewExtGetShadersQCOM) +#define glExtIsProgramBinaryQCOM GLEW_GET_FUN(__glewExtIsProgramBinaryQCOM) + +#define GLEW_QCOM_extended_get2 GLEW_GET_VAR(__GLEW_QCOM_extended_get2) + +#endif /* GL_QCOM_extended_get2 */ + +/* ---------------------- GL_QCOM_framebuffer_foveated --------------------- */ + +#ifndef GL_QCOM_framebuffer_foveated +#define GL_QCOM_framebuffer_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glFramebufferFoveationConfigQCOM GLEW_GET_FUN(__glewFramebufferFoveationConfigQCOM) +#define glFramebufferFoveationParametersQCOM GLEW_GET_FUN(__glewFramebufferFoveationParametersQCOM) + +#define GLEW_QCOM_framebuffer_foveated GLEW_GET_VAR(__GLEW_QCOM_framebuffer_foveated) + +#endif /* GL_QCOM_framebuffer_foveated */ + +/* ---------------------- GL_QCOM_perfmon_global_mode ---------------------- */ + +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 + +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 + +#define GLEW_QCOM_perfmon_global_mode GLEW_GET_VAR(__GLEW_QCOM_perfmon_global_mode) + +#endif /* GL_QCOM_perfmon_global_mode */ + +/* -------------- GL_QCOM_shader_framebuffer_fetch_noncoherent ------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent +#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 + +#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); + +#define glFramebufferFetchBarrierQCOM GLEW_GET_FUN(__glewFramebufferFetchBarrierQCOM) + +#define GLEW_QCOM_shader_framebuffer_fetch_noncoherent GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_noncoherent) + +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +/* ----------------- GL_QCOM_shader_framebuffer_fetch_rate ----------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_rate +#define GL_QCOM_shader_framebuffer_fetch_rate 1 + +#define GLEW_QCOM_shader_framebuffer_fetch_rate GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_rate) + +#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ + +/* ------------------------ GL_QCOM_texture_foveated ----------------------- */ + +#ifndef GL_QCOM_texture_foveated +#define GL_QCOM_texture_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 +#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB +#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC +#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD +#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE +#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glTextureFoveationParametersQCOM GLEW_GET_FUN(__glewTextureFoveationParametersQCOM) + +#define GLEW_QCOM_texture_foveated GLEW_GET_VAR(__GLEW_QCOM_texture_foveated) + +#endif /* GL_QCOM_texture_foveated */ + +/* --------------- GL_QCOM_texture_foveated_subsampled_layout -------------- */ + +#ifndef GL_QCOM_texture_foveated_subsampled_layout +#define GL_QCOM_texture_foveated_subsampled_layout 1 + +#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x4 +#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 + +#define GLEW_QCOM_texture_foveated_subsampled_layout GLEW_GET_VAR(__GLEW_QCOM_texture_foveated_subsampled_layout) + +#endif /* GL_QCOM_texture_foveated_subsampled_layout */ + +/* ------------------------ GL_QCOM_tiled_rendering ------------------------ */ + +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 + +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 + +typedef void (GLAPIENTRY * PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +typedef void (GLAPIENTRY * PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); + +#define glEndTilingQCOM GLEW_GET_FUN(__glewEndTilingQCOM) +#define glStartTilingQCOM GLEW_GET_FUN(__glewStartTilingQCOM) + +#define GLEW_QCOM_tiled_rendering GLEW_GET_VAR(__GLEW_QCOM_tiled_rendering) + +#endif /* GL_QCOM_tiled_rendering */ + +/* ---------------------- GL_QCOM_writeonly_rendering ---------------------- */ + +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 + +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 + +#define GLEW_QCOM_writeonly_rendering GLEW_GET_VAR(__GLEW_QCOM_writeonly_rendering) + +#endif /* GL_QCOM_writeonly_rendering */ + /* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */ #ifndef GL_REGAL_ES1_0_compatibility @@ -15395,6 +20471,15 @@ typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name); #endif /* GL_S3_s3tc */ +/* ------------------------- GL_SGIS_clip_band_hint ------------------------ */ + +#ifndef GL_SGIS_clip_band_hint +#define GL_SGIS_clip_band_hint 1 + +#define GLEW_SGIS_clip_band_hint GLEW_GET_VAR(__GLEW_SGIS_clip_band_hint) + +#endif /* GL_SGIS_clip_band_hint */ + /* -------------------------- GL_SGIS_color_range -------------------------- */ #ifndef GL_SGIS_color_range @@ -15456,6 +20541,15 @@ typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); #endif /* GL_SGIS_generate_mipmap */ +/* -------------------------- GL_SGIS_line_texgen -------------------------- */ + +#ifndef GL_SGIS_line_texgen +#define GL_SGIS_line_texgen 1 + +#define GLEW_SGIS_line_texgen GLEW_GET_VAR(__GLEW_SGIS_line_texgen) + +#endif /* GL_SGIS_line_texgen */ + /* -------------------------- GL_SGIS_multisample -------------------------- */ #ifndef GL_SGIS_multisample @@ -15488,6 +20582,37 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif /* GL_SGIS_multisample */ +/* -------------------------- GL_SGIS_multitexture ------------------------- */ + +#ifndef GL_SGIS_multitexture +#define GL_SGIS_multitexture 1 + +#define GL_SELECTED_TEXTURE_SGIS 0x83C0 +#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1 +#define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2 +#define GL_MAX_TEXTURES_SGIS 0x83C3 +#define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4 +#define GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5 +#define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6 +#define GL_TEXTURE0_SGIS 0x83C7 +#define GL_TEXTURE1_SGIS 0x83C8 +#define GL_TEXTURE2_SGIS 0x83C9 +#define GL_TEXTURE3_SGIS 0x83CA + +typedef void (GLAPIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC) (GLint factor); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum target); + +#define glInterleavedTextureCoordSetsSGIS GLEW_GET_FUN(__glewInterleavedTextureCoordSetsSGIS) +#define glSelectTextureCoordSetSGIS GLEW_GET_FUN(__glewSelectTextureCoordSetSGIS) +#define glSelectTextureSGIS GLEW_GET_FUN(__glewSelectTextureSGIS) +#define glSelectTextureTransformSGIS GLEW_GET_FUN(__glewSelectTextureTransformSGIS) + +#define GLEW_SGIS_multitexture GLEW_GET_VAR(__GLEW_SGIS_multitexture) + +#endif /* GL_SGIS_multitexture */ + /* ------------------------- GL_SGIS_pixel_texture ------------------------- */ #ifndef GL_SGIS_pixel_texture @@ -15515,6 +20640,19 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif /* GL_SGIS_point_line_texgen */ +/* ----------------------- GL_SGIS_shared_multisample ---------------------- */ + +#ifndef GL_SGIS_shared_multisample +#define GL_SGIS_shared_multisample 1 + +typedef void (GLAPIENTRY * PFNGLMULTISAMPLESUBRECTPOSSGISPROC) (GLint x, GLint y); + +#define glMultisampleSubRectPosSGIS GLEW_GET_FUN(__glewMultisampleSubRectPosSGIS) + +#define GLEW_SGIS_shared_multisample GLEW_GET_VAR(__GLEW_SGIS_shared_multisample) + +#endif /* GL_SGIS_shared_multisample */ + /* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ #ifndef GL_SGIS_sharpen_texture @@ -15658,6 +20796,42 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_async_pixel */ +/* ----------------------- GL_SGIX_bali_g_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_g_instruments +#define GL_SGIX_bali_g_instruments 1 + +#define GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080 +#define GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081 +#define GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082 +#define GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083 + +#define GLEW_SGIX_bali_g_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_g_instruments) + +#endif /* GL_SGIX_bali_g_instruments */ + +/* ----------------------- GL_SGIX_bali_r_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_r_instruments +#define GL_SGIX_bali_r_instruments 1 + +#define GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090 +#define GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091 +#define GL_BALI_R_CHIP_COUNT 0x6092 + +#define GLEW_SGIX_bali_r_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_r_instruments) + +#endif /* GL_SGIX_bali_r_instruments */ + +/* --------------------- GL_SGIX_bali_timer_instruments -------------------- */ + +#ifndef GL_SGIX_bali_timer_instruments +#define GL_SGIX_bali_timer_instruments 1 + +#define GLEW_SGIX_bali_timer_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_timer_instruments) + +#endif /* GL_SGIX_bali_timer_instruments */ + /* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ #ifndef GL_SGIX_blend_alpha_minmax @@ -15670,6 +20844,37 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_blend_alpha_minmax */ +/* --------------------------- GL_SGIX_blend_cadd -------------------------- */ + +#ifndef GL_SGIX_blend_cadd +#define GL_SGIX_blend_cadd 1 + +#define GL_FUNC_COMPLEX_ADD_EXT 0x601C + +#define GLEW_SGIX_blend_cadd GLEW_GET_VAR(__GLEW_SGIX_blend_cadd) + +#endif /* GL_SGIX_blend_cadd */ + +/* ------------------------ GL_SGIX_blend_cmultiply ------------------------ */ + +#ifndef GL_SGIX_blend_cmultiply +#define GL_SGIX_blend_cmultiply 1 + +#define GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B + +#define GLEW_SGIX_blend_cmultiply GLEW_GET_VAR(__GLEW_SGIX_blend_cmultiply) + +#endif /* GL_SGIX_blend_cmultiply */ + +/* --------------------- GL_SGIX_calligraphic_fragment --------------------- */ + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 + +#define GLEW_SGIX_calligraphic_fragment GLEW_GET_VAR(__GLEW_SGIX_calligraphic_fragment) + +#endif /* GL_SGIX_calligraphic_fragment */ + /* ---------------------------- GL_SGIX_clipmap ---------------------------- */ #ifndef GL_SGIX_clipmap @@ -15679,6 +20884,35 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_clipmap */ +/* --------------------- GL_SGIX_color_matrix_accuracy --------------------- */ + +#ifndef GL_SGIX_color_matrix_accuracy +#define GL_SGIX_color_matrix_accuracy 1 + +#define GL_COLOR_MATRIX_HINT 0x8317 + +#define GLEW_SGIX_color_matrix_accuracy GLEW_GET_VAR(__GLEW_SGIX_color_matrix_accuracy) + +#endif /* GL_SGIX_color_matrix_accuracy */ + +/* --------------------- GL_SGIX_color_table_index_mode -------------------- */ + +#ifndef GL_SGIX_color_table_index_mode +#define GL_SGIX_color_table_index_mode 1 + +#define GLEW_SGIX_color_table_index_mode GLEW_GET_VAR(__GLEW_SGIX_color_table_index_mode) + +#endif /* GL_SGIX_color_table_index_mode */ + +/* ------------------------- GL_SGIX_complex_polar ------------------------- */ + +#ifndef GL_SGIX_complex_polar +#define GL_SGIX_complex_polar 1 + +#define GLEW_SGIX_complex_polar GLEW_GET_VAR(__GLEW_SGIX_complex_polar) + +#endif /* GL_SGIX_complex_polar */ + /* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ #ifndef GL_SGIX_convolution_accuracy @@ -15690,6 +20924,74 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_convolution_accuracy */ +/* ---------------------------- GL_SGIX_cube_map --------------------------- */ + +#ifndef GL_SGIX_cube_map +#define GL_SGIX_cube_map 1 + +#define GL_ENV_MAP_SGIX 0x8340 +#define GL_CUBE_MAP_SGIX 0x8341 +#define GL_CUBE_MAP_ZP_SGIX 0x8342 +#define GL_CUBE_MAP_ZN_SGIX 0x8343 +#define GL_CUBE_MAP_XN_SGIX 0x8344 +#define GL_CUBE_MAP_XP_SGIX 0x8345 +#define GL_CUBE_MAP_YN_SGIX 0x8346 +#define GL_CUBE_MAP_YP_SGIX 0x8347 +#define GL_CUBE_MAP_BINDING_SGIX 0x8348 + +#define GLEW_SGIX_cube_map GLEW_GET_VAR(__GLEW_SGIX_cube_map) + +#endif /* GL_SGIX_cube_map */ + +/* ------------------------ GL_SGIX_cylinder_texgen ------------------------ */ + +#ifndef GL_SGIX_cylinder_texgen +#define GL_SGIX_cylinder_texgen 1 + +#define GLEW_SGIX_cylinder_texgen GLEW_GET_VAR(__GLEW_SGIX_cylinder_texgen) + +#endif /* GL_SGIX_cylinder_texgen */ + +/* ---------------------------- GL_SGIX_datapipe --------------------------- */ + +#ifndef GL_SGIX_datapipe +#define GL_SGIX_datapipe 1 + +#define GL_GEOMETRY_BIT 0x1 +#define GL_IMAGE_BIT 0x2 + +typedef void (GLAPIENTRY * PFNGLADDRESSSPACEPROC) (GLenum space, GLbitfield mask); +typedef GLint (GLAPIENTRY * PFNGLDATAPIPEPROC) (GLenum space); + +#define glAddressSpace GLEW_GET_FUN(__glewAddressSpace) +#define glDataPipe GLEW_GET_FUN(__glewDataPipe) + +#define GLEW_SGIX_datapipe GLEW_GET_VAR(__GLEW_SGIX_datapipe) + +#endif /* GL_SGIX_datapipe */ + +/* --------------------------- GL_SGIX_decimation -------------------------- */ + +#ifndef GL_SGIX_decimation +#define GL_SGIX_decimation 1 + +#define GLEW_SGIX_decimation GLEW_GET_VAR(__GLEW_SGIX_decimation) + +#endif /* GL_SGIX_decimation */ + +/* --------------------- GL_SGIX_depth_pass_instrument --------------------- */ + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 + +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 + +#define GLEW_SGIX_depth_pass_instrument GLEW_GET_VAR(__GLEW_SGIX_depth_pass_instrument) + +#endif /* GL_SGIX_depth_pass_instrument */ + /* ------------------------- GL_SGIX_depth_texture ------------------------- */ #ifndef GL_SGIX_depth_texture @@ -15703,6 +21005,15 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_depth_texture */ +/* ------------------------------ GL_SGIX_dvc ------------------------------ */ + +#ifndef GL_SGIX_dvc +#define GL_SGIX_dvc 1 + +#define GLEW_SGIX_dvc GLEW_GET_VAR(__GLEW_SGIX_dvc) + +#endif /* GL_SGIX_dvc */ + /* -------------------------- GL_SGIX_flush_raster ------------------------- */ #ifndef GL_SGIX_flush_raster @@ -15716,6 +21027,49 @@ typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); #endif /* GL_SGIX_flush_raster */ +/* --------------------------- GL_SGIX_fog_blend --------------------------- */ + +#ifndef GL_SGIX_fog_blend +#define GL_SGIX_fog_blend 1 + +#define GL_FOG_BLEND_ALPHA_SGIX 0x81FE +#define GL_FOG_BLEND_COLOR_SGIX 0x81FF + +#define GLEW_SGIX_fog_blend GLEW_GET_VAR(__GLEW_SGIX_fog_blend) + +#endif /* GL_SGIX_fog_blend */ + +/* ---------------------- GL_SGIX_fog_factor_to_alpha ---------------------- */ + +#ifndef GL_SGIX_fog_factor_to_alpha +#define GL_SGIX_fog_factor_to_alpha 1 + +#define GLEW_SGIX_fog_factor_to_alpha GLEW_GET_VAR(__GLEW_SGIX_fog_factor_to_alpha) + +#endif /* GL_SGIX_fog_factor_to_alpha */ + +/* --------------------------- GL_SGIX_fog_layers -------------------------- */ + +#ifndef GL_SGIX_fog_layers +#define GL_SGIX_fog_layers 1 + +#define GL_FOG_TYPE_SGIX 0x8323 +#define GL_UNIFORM_SGIX 0x8324 +#define GL_LAYERED_SGIX 0x8325 +#define GL_FOG_GROUND_PLANE_SGIX 0x8326 +#define GL_FOG_LAYERS_POINTS_SGIX 0x8327 +#define GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328 + +typedef void (GLAPIENTRY * PFNGLFOGLAYERSSGIXPROC) (GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETFOGLAYERSSGIXPROC) (GLfloat* points); + +#define glFogLayersSGIX GLEW_GET_FUN(__glewFogLayersSGIX) +#define glGetFogLayersSGIX GLEW_GET_FUN(__glewGetFogLayersSGIX) + +#define GLEW_SGIX_fog_layers GLEW_GET_VAR(__GLEW_SGIX_fog_layers) + +#endif /* GL_SGIX_fog_layers */ + /* --------------------------- GL_SGIX_fog_offset -------------------------- */ #ifndef GL_SGIX_fog_offset @@ -15728,15 +21082,32 @@ typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); #endif /* GL_SGIX_fog_offset */ +/* --------------------------- GL_SGIX_fog_patchy -------------------------- */ + +#ifndef GL_SGIX_fog_patchy +#define GL_SGIX_fog_patchy 1 + +#define GLEW_SGIX_fog_patchy GLEW_GET_VAR(__GLEW_SGIX_fog_patchy) + +#endif /* GL_SGIX_fog_patchy */ + +/* --------------------------- GL_SGIX_fog_scale --------------------------- */ + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 + +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD + +#define GLEW_SGIX_fog_scale GLEW_GET_VAR(__GLEW_SGIX_fog_scale) + +#endif /* GL_SGIX_fog_scale */ + /* -------------------------- GL_SGIX_fog_texture -------------------------- */ #ifndef GL_SGIX_fog_texture #define GL_SGIX_fog_texture 1 -#define GL_FOG_PATCHY_FACTOR_SGIX 0 -#define GL_FRAGMENT_FOG_SGIX 0 -#define GL_TEXTURE_FOG_SGIX 0 - typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); #define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) @@ -15745,6 +21116,20 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); #endif /* GL_SGIX_fog_texture */ +/* -------------------- GL_SGIX_fragment_lighting_space -------------------- */ + +#ifndef GL_SGIX_fragment_lighting_space +#define GL_SGIX_fragment_lighting_space 1 + +#define GL_EYE_SPACE_SGIX 0x8436 +#define GL_TANGENT_SPACE_SGIX 0x8437 +#define GL_OBJECT_SPACE_SGIX 0x8438 +#define GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D + +#define GLEW_SGIX_fragment_lighting_space GLEW_GET_VAR(__GLEW_SGIX_fragment_lighting_space) + +#endif /* GL_SGIX_fragment_lighting_space */ + /* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ #ifndef GL_SGIX_fragment_specular_lighting @@ -15765,8 +21150,8 @@ typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint* data); #define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) #define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) @@ -15790,6 +21175,19 @@ typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLe #endif /* GL_SGIX_fragment_specular_lighting */ +/* ---------------------- GL_SGIX_fragments_instrument --------------------- */ + +#ifndef GL_SGIX_fragments_instrument +#define GL_SGIX_fragments_instrument 1 + +#define GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313 +#define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314 +#define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315 + +#define GLEW_SGIX_fragments_instrument GLEW_GET_VAR(__GLEW_SGIX_fragments_instrument) + +#endif /* GL_SGIX_fragments_instrument */ + /* --------------------------- GL_SGIX_framezoom --------------------------- */ #ifndef GL_SGIX_framezoom @@ -15803,6 +21201,77 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_framezoom */ +/* -------------------------- GL_SGIX_icc_texture -------------------------- */ + +#ifndef GL_SGIX_icc_texture +#define GL_SGIX_icc_texture 1 + +#define GL_RGB_ICC_SGIX 0x8460 +#define GL_RGBA_ICC_SGIX 0x8461 +#define GL_ALPHA_ICC_SGIX 0x8462 +#define GL_LUMINANCE_ICC_SGIX 0x8463 +#define GL_INTENSITY_ICC_SGIX 0x8464 +#define GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465 +#define GL_R5_G6_B5_ICC_SGIX 0x8466 +#define GL_R5_G6_B5_A8_ICC_SGIX 0x8467 +#define GL_ALPHA16_ICC_SGIX 0x8468 +#define GL_LUMINANCE16_ICC_SGIX 0x8469 +#define GL_INTENSITY16_ICC_SGIX 0x846A +#define GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B + +#define GLEW_SGIX_icc_texture GLEW_GET_VAR(__GLEW_SGIX_icc_texture) + +#endif /* GL_SGIX_icc_texture */ + +/* ------------------------ GL_SGIX_igloo_interface ------------------------ */ + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 + +#define GL_IGLOO_FULLSCREEN_SGIX 0x819E +#define GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F +#define GL_IGLOO_SWAPTMESH_SGIX 0x81A0 +#define GL_IGLOO_COLORNORMAL_SGIX 0x81A1 +#define GL_IGLOO_IRISGL_MODE_SGIX 0x81A2 +#define GL_IGLOO_LMC_COLOR_SGIX 0x81A3 +#define GL_IGLOO_TMESHMODE_SGIX 0x81A4 +#define GL_LIGHT31 0xBEAD + +typedef void (GLAPIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, void *param); + +#define glIglooInterfaceSGIX GLEW_GET_FUN(__glewIglooInterfaceSGIX) + +#define GLEW_SGIX_igloo_interface GLEW_GET_VAR(__GLEW_SGIX_igloo_interface) + +#endif /* GL_SGIX_igloo_interface */ + +/* ----------------------- GL_SGIX_image_compression ----------------------- */ + +#ifndef GL_SGIX_image_compression +#define GL_SGIX_image_compression 1 + +#define GLEW_SGIX_image_compression GLEW_GET_VAR(__GLEW_SGIX_image_compression) + +#endif /* GL_SGIX_image_compression */ + +/* ---------------------- GL_SGIX_impact_pixel_texture --------------------- */ + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_SGIX_impact_pixel_texture 1 + +#define GLEW_SGIX_impact_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_impact_pixel_texture) + +#endif /* GL_SGIX_impact_pixel_texture */ + +/* ------------------------ GL_SGIX_instrument_error ----------------------- */ + +#ifndef GL_SGIX_instrument_error +#define GL_SGIX_instrument_error 1 + +#define GLEW_SGIX_instrument_error GLEW_GET_VAR(__GLEW_SGIX_instrument_error) + +#endif /* GL_SGIX_instrument_error */ + /* --------------------------- GL_SGIX_interlace --------------------------- */ #ifndef GL_SGIX_interlace @@ -15823,6 +21292,17 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_ir_instrument1 */ +/* ----------------------- GL_SGIX_line_quality_hint ----------------------- */ + +#ifndef GL_SGIX_line_quality_hint +#define GL_SGIX_line_quality_hint 1 + +#define GL_LINE_QUALITY_HINT_SGIX 0x835B + +#define GLEW_SGIX_line_quality_hint GLEW_GET_VAR(__GLEW_SGIX_line_quality_hint) + +#endif /* GL_SGIX_line_quality_hint */ + /* ------------------------- GL_SGIX_list_priority ------------------------- */ #ifndef GL_SGIX_list_priority @@ -15832,6 +21312,117 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_list_priority */ +/* ----------------------------- GL_SGIX_mpeg1 ----------------------------- */ + +#ifndef GL_SGIX_mpeg1 +#define GL_SGIX_mpeg1 1 + +typedef void (GLAPIENTRY * PFNGLALLOCMPEGPREDICTORSSGIXPROC) (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLDELETEMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGENMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERFVSGIXPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERIVSGIXPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef GLboolean (GLAPIENTRY * PFNGLISMPEGPREDICTORSGIXPROC) (GLuint predictor); +typedef void (GLAPIENTRY * PFNGLMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef void (GLAPIENTRY * PFNGLSWAPMPEGPREDICTORSSGIXPROC) (GLenum target0, GLenum target1); + +#define glAllocMPEGPredictorsSGIX GLEW_GET_FUN(__glewAllocMPEGPredictorsSGIX) +#define glDeleteMPEGPredictorsSGIX GLEW_GET_FUN(__glewDeleteMPEGPredictorsSGIX) +#define glGenMPEGPredictorsSGIX GLEW_GET_FUN(__glewGenMPEGPredictorsSGIX) +#define glGetMPEGParameterfvSGIX GLEW_GET_FUN(__glewGetMPEGParameterfvSGIX) +#define glGetMPEGParameterivSGIX GLEW_GET_FUN(__glewGetMPEGParameterivSGIX) +#define glGetMPEGPredictorSGIX GLEW_GET_FUN(__glewGetMPEGPredictorSGIX) +#define glGetMPEGQuantTableubv GLEW_GET_FUN(__glewGetMPEGQuantTableubv) +#define glIsMPEGPredictorSGIX GLEW_GET_FUN(__glewIsMPEGPredictorSGIX) +#define glMPEGPredictorSGIX GLEW_GET_FUN(__glewMPEGPredictorSGIX) +#define glMPEGQuantTableubv GLEW_GET_FUN(__glewMPEGQuantTableubv) +#define glSwapMPEGPredictorsSGIX GLEW_GET_FUN(__glewSwapMPEGPredictorsSGIX) + +#define GLEW_SGIX_mpeg1 GLEW_GET_VAR(__GLEW_SGIX_mpeg1) + +#endif /* GL_SGIX_mpeg1 */ + +/* ----------------------------- GL_SGIX_mpeg2 ----------------------------- */ + +#ifndef GL_SGIX_mpeg2 +#define GL_SGIX_mpeg2 1 + +#define GLEW_SGIX_mpeg2 GLEW_GET_VAR(__GLEW_SGIX_mpeg2) + +#endif /* GL_SGIX_mpeg2 */ + +/* ------------------ GL_SGIX_nonlinear_lighting_pervertex ----------------- */ + +#ifndef GL_SGIX_nonlinear_lighting_pervertex +#define GL_SGIX_nonlinear_lighting_pervertex 1 + +typedef void (GLAPIENTRY * PFNGLGETNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint* terms, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint* terms, const GLfloat *data); +typedef void (GLAPIENTRY * PFNGLNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint terms, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint terms, const GLfloat* params); + +#define glGetNonlinLightfvSGIX GLEW_GET_FUN(__glewGetNonlinLightfvSGIX) +#define glGetNonlinMaterialfvSGIX GLEW_GET_FUN(__glewGetNonlinMaterialfvSGIX) +#define glNonlinLightfvSGIX GLEW_GET_FUN(__glewNonlinLightfvSGIX) +#define glNonlinMaterialfvSGIX GLEW_GET_FUN(__glewNonlinMaterialfvSGIX) + +#define GLEW_SGIX_nonlinear_lighting_pervertex GLEW_GET_VAR(__GLEW_SGIX_nonlinear_lighting_pervertex) + +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ + +/* --------------------------- GL_SGIX_nurbs_eval -------------------------- */ + +#ifndef GL_SGIX_nurbs_eval +#define GL_SGIX_nurbs_eval 1 + +#define GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB +#define GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC +#define GL_MAP1_INDEX_NURBS_SGIX 0x81CD +#define GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE +#define GL_MAP1_NORMAL_NURBS_SGIX 0x81CF +#define GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0 +#define GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1 +#define GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2 +#define GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3 +#define GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4 +#define GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5 +#define GL_MAP2_INDEX_NURBS_SGIX 0x81E6 +#define GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7 +#define GL_MAP2_NORMAL_NURBS_SGIX 0x81E8 +#define GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9 +#define GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA +#define GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB +#define GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC +#define GL_NURBS_KNOT_COUNT_SGIX 0x81ED +#define GL_NURBS_KNOT_VECTOR_SGIX 0x81EE + +#define GLEW_SGIX_nurbs_eval GLEW_GET_VAR(__GLEW_SGIX_nurbs_eval) + +#endif /* GL_SGIX_nurbs_eval */ + +/* ---------------------- GL_SGIX_occlusion_instrument --------------------- */ + +#ifndef GL_SGIX_occlusion_instrument +#define GL_SGIX_occlusion_instrument 1 + +#define GL_OCCLUSION_INSTRUMENT_SGIX 0x6060 + +#define GLEW_SGIX_occlusion_instrument GLEW_GET_VAR(__GLEW_SGIX_occlusion_instrument) + +#endif /* GL_SGIX_occlusion_instrument */ + +/* ------------------------- GL_SGIX_packed_6bytes ------------------------- */ + +#ifndef GL_SGIX_packed_6bytes +#define GL_SGIX_packed_6bytes 1 + +#define GLEW_SGIX_packed_6bytes GLEW_GET_VAR(__GLEW_SGIX_packed_6bytes) + +#endif /* GL_SGIX_packed_6bytes */ + /* ------------------------- GL_SGIX_pixel_texture ------------------------- */ #ifndef GL_SGIX_pixel_texture @@ -15854,6 +21445,57 @@ typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); #endif /* GL_SGIX_pixel_texture_bits */ +/* ----------------------- GL_SGIX_pixel_texture_lod ----------------------- */ + +#ifndef GL_SGIX_pixel_texture_lod +#define GL_SGIX_pixel_texture_lod 1 + +#define GLEW_SGIX_pixel_texture_lod GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_lod) + +#endif /* GL_SGIX_pixel_texture_lod */ + +/* -------------------------- GL_SGIX_pixel_tiles -------------------------- */ + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 + +#define GLEW_SGIX_pixel_tiles GLEW_GET_VAR(__GLEW_SGIX_pixel_tiles) + +#endif /* GL_SGIX_pixel_tiles */ + +/* ------------------------- GL_SGIX_polynomial_ffd ------------------------ */ + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 + +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2 + +typedef void (GLAPIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); + +#define glDeformSGIX GLEW_GET_FUN(__glewDeformSGIX) +#define glLoadIdentityDeformationMapSGIX GLEW_GET_FUN(__glewLoadIdentityDeformationMapSGIX) + +#define GLEW_SGIX_polynomial_ffd GLEW_GET_VAR(__GLEW_SGIX_polynomial_ffd) + +#endif /* GL_SGIX_polynomial_ffd */ + +/* --------------------------- GL_SGIX_quad_mesh --------------------------- */ + +#ifndef GL_SGIX_quad_mesh +#define GL_SGIX_quad_mesh 1 + +typedef void (GLAPIENTRY * PFNGLMESHBREADTHSGIXPROC) (GLint breadth); +typedef void (GLAPIENTRY * PFNGLMESHSTRIDESGIXPROC) (GLint stride); + +#define glMeshBreadthSGIX GLEW_GET_FUN(__glewMeshBreadthSGIX) +#define glMeshStrideSGIX GLEW_GET_FUN(__glewMeshStrideSGIX) + +#define GLEW_SGIX_quad_mesh GLEW_GET_VAR(__GLEW_SGIX_quad_mesh) + +#endif /* GL_SGIX_quad_mesh */ + /* ------------------------ GL_SGIX_reference_plane ------------------------ */ #ifndef GL_SGIX_reference_plane @@ -15882,6 +21524,17 @@ typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equatio #endif /* GL_SGIX_resample */ +/* ------------------------- GL_SGIX_scalebias_hint ------------------------ */ + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 + +#define GL_SCALEBIAS_HINT_SGIX 0x8322 + +#define GLEW_SGIX_scalebias_hint GLEW_GET_VAR(__GLEW_SGIX_scalebias_hint) + +#endif /* GL_SGIX_scalebias_hint */ + /* ----------------------------- GL_SGIX_shadow ---------------------------- */ #ifndef GL_SGIX_shadow @@ -15907,6 +21560,31 @@ typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equatio #endif /* GL_SGIX_shadow_ambient */ +/* ------------------------------ GL_SGIX_slim ----------------------------- */ + +#ifndef GL_SGIX_slim +#define GL_SGIX_slim 1 + +#define GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B +#define GL_SLIM8U_SGIX 0x831D +#define GL_SLIM10U_SGIX 0x831E +#define GL_SLIM12S_SGIX 0x831F + +#define GLEW_SGIX_slim GLEW_GET_VAR(__GLEW_SGIX_slim) + +#endif /* GL_SGIX_slim */ + +/* ------------------------ GL_SGIX_spotlight_cutoff ----------------------- */ + +#ifndef GL_SGIX_spotlight_cutoff +#define GL_SGIX_spotlight_cutoff 1 + +#define GL_SPOT_CUTOFF_DELTA_SGIX 0x8193 + +#define GLEW_SGIX_spotlight_cutoff GLEW_GET_VAR(__GLEW_SGIX_spotlight_cutoff) + +#endif /* GL_SGIX_spotlight_cutoff */ + /* ----------------------------- GL_SGIX_sprite ---------------------------- */ #ifndef GL_SGIX_sprite @@ -15926,6 +21604,30 @@ typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* #endif /* GL_SGIX_sprite */ +/* -------------------------- GL_SGIX_subdiv_patch ------------------------- */ + +#ifndef GL_SGIX_subdiv_patch +#define GL_SGIX_subdiv_patch 1 + +#define GLEW_SGIX_subdiv_patch GLEW_GET_VAR(__GLEW_SGIX_subdiv_patch) + +#endif /* GL_SGIX_subdiv_patch */ + +/* --------------------------- GL_SGIX_subsample --------------------------- */ + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 + +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 + +#define GLEW_SGIX_subsample GLEW_GET_VAR(__GLEW_SGIX_subsample) + +#endif /* GL_SGIX_subsample */ + /* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ #ifndef GL_SGIX_tag_sample_buffer @@ -15970,6 +21672,18 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_lod_bias */ +/* ------------------- GL_SGIX_texture_mipmap_anisotropic ------------------ */ + +#ifndef GL_SGIX_texture_mipmap_anisotropic +#define GL_SGIX_texture_mipmap_anisotropic 1 + +#define GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E +#define GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F + +#define GLEW_SGIX_texture_mipmap_anisotropic GLEW_GET_VAR(__GLEW_SGIX_texture_mipmap_anisotropic) + +#endif /* GL_SGIX_texture_mipmap_anisotropic */ + /* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ #ifndef GL_SGIX_texture_multi_buffer @@ -15981,6 +21695,17 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_multi_buffer */ +/* ------------------------- GL_SGIX_texture_phase ------------------------- */ + +#ifndef GL_SGIX_texture_phase +#define GL_SGIX_texture_phase 1 + +#define GL_PHASE_SGIX 0x832A + +#define GLEW_SGIX_texture_phase GLEW_GET_VAR(__GLEW_SGIX_texture_phase) + +#endif /* GL_SGIX_texture_phase */ + /* ------------------------- GL_SGIX_texture_range ------------------------- */ #ifndef GL_SGIX_texture_range @@ -16033,6 +21758,53 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_scale_bias */ +/* ---------------------- GL_SGIX_texture_supersample ---------------------- */ + +#ifndef GL_SGIX_texture_supersample +#define GL_SGIX_texture_supersample 1 + +#define GLEW_SGIX_texture_supersample GLEW_GET_VAR(__GLEW_SGIX_texture_supersample) + +#endif /* GL_SGIX_texture_supersample */ + +/* --------------------------- GL_SGIX_vector_ops -------------------------- */ + +#ifndef GL_SGIX_vector_ops +#define GL_SGIX_vector_ops 1 + +typedef void (GLAPIENTRY * PFNGLGETVECTOROPERATIONSGIXPROC) (GLenum operation); +typedef void (GLAPIENTRY * PFNGLVECTOROPERATIONSGIXPROC) (GLenum operation); + +#define glGetVectorOperationSGIX GLEW_GET_FUN(__glewGetVectorOperationSGIX) +#define glVectorOperationSGIX GLEW_GET_FUN(__glewVectorOperationSGIX) + +#define GLEW_SGIX_vector_ops GLEW_GET_VAR(__GLEW_SGIX_vector_ops) + +#endif /* GL_SGIX_vector_ops */ + +/* ---------------------- GL_SGIX_vertex_array_object ---------------------- */ + +#ifndef GL_SGIX_vertex_array_object +#define GL_SGIX_vertex_array_object 1 + +typedef GLboolean (GLAPIENTRY * PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC) (GLsizei n, const GLuint* arrays, GLboolean* residences); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSSGIXPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays, const GLclampf* priorities); + +#define glAreVertexArraysResidentSGIX GLEW_GET_FUN(__glewAreVertexArraysResidentSGIX) +#define glBindVertexArraySGIX GLEW_GET_FUN(__glewBindVertexArraySGIX) +#define glDeleteVertexArraysSGIX GLEW_GET_FUN(__glewDeleteVertexArraysSGIX) +#define glGenVertexArraysSGIX GLEW_GET_FUN(__glewGenVertexArraysSGIX) +#define glIsVertexArraySGIX GLEW_GET_FUN(__glewIsVertexArraySGIX) +#define glPrioritizeVertexArraysSGIX GLEW_GET_FUN(__glewPrioritizeVertexArraysSGIX) + +#define GLEW_SGIX_vertex_array_object GLEW_GET_VAR(__GLEW_SGIX_vertex_array_object) + +#endif /* GL_SGIX_vertex_array_object */ + /* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ #ifndef GL_SGIX_vertex_preclip @@ -16066,6 +21838,27 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_ycrcb */ +/* ------------------------ GL_SGIX_ycrcb_subsample ------------------------ */ + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 + +#define GLEW_SGIX_ycrcb_subsample GLEW_GET_VAR(__GLEW_SGIX_ycrcb_subsample) + +#endif /* GL_SGIX_ycrcb_subsample */ + +/* ----------------------------- GL_SGIX_ycrcba ---------------------------- */ + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 + +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 + +#define GLEW_SGIX_ycrcba GLEW_GET_VAR(__GLEW_SGIX_ycrcba) + +#endif /* GL_SGIX_ycrcba */ + /* -------------------------- GL_SGI_color_matrix -------------------------- */ #ifndef GL_SGI_color_matrix @@ -16129,6 +21922,63 @@ typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum for #endif /* GL_SGI_color_table */ +/* ----------------------------- GL_SGI_complex ---------------------------- */ + +#ifndef GL_SGI_complex +#define GL_SGI_complex 1 + +#define GLEW_SGI_complex GLEW_GET_VAR(__GLEW_SGI_complex) + +#endif /* GL_SGI_complex */ + +/* -------------------------- GL_SGI_complex_type -------------------------- */ + +#ifndef GL_SGI_complex_type +#define GL_SGI_complex_type 1 + +#define GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD +#define GL_COMPLEX_BYTE_SGI 0x81BE +#define GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF +#define GL_COMPLEX_SHORT_SGI 0x81C0 +#define GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1 +#define GL_COMPLEX_INT_SGI 0x81C2 +#define GL_COMPLEX_FLOAT_SGI 0x81C3 + +#define GLEW_SGI_complex_type GLEW_GET_VAR(__GLEW_SGI_complex_type) + +#endif /* GL_SGI_complex_type */ + +/* ------------------------------- GL_SGI_fft ------------------------------ */ + +#ifndef GL_SGI_fft +#define GL_SGI_fft 1 + +#define GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4 +#define GL_CONVOLUTION_SGI 0x81C5 +#define GL_FFT_1D_SGI 0x81C6 +#define GL_PIXEL_TRANSFORM_SGI 0x81C7 +#define GL_MAX_FFT_WIDTH_SGI 0x81C8 + +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFSGIPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERISGIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMSGIPROC) (GLenum target); + +#define glGetPixelTransformParameterfvSGI GLEW_GET_FUN(__glewGetPixelTransformParameterfvSGI) +#define glGetPixelTransformParameterivSGI GLEW_GET_FUN(__glewGetPixelTransformParameterivSGI) +#define glPixelTransformParameterfSGI GLEW_GET_FUN(__glewPixelTransformParameterfSGI) +#define glPixelTransformParameterfvSGI GLEW_GET_FUN(__glewPixelTransformParameterfvSGI) +#define glPixelTransformParameteriSGI GLEW_GET_FUN(__glewPixelTransformParameteriSGI) +#define glPixelTransformParameterivSGI GLEW_GET_FUN(__glewPixelTransformParameterivSGI) +#define glPixelTransformSGI GLEW_GET_FUN(__glewPixelTransformSGI) + +#define GLEW_SGI_fft GLEW_GET_VAR(__GLEW_SGI_fft) + +#endif /* GL_SGI_fft */ + /* ----------------------- GL_SGI_texture_color_table ---------------------- */ #ifndef GL_SGI_texture_color_table @@ -16368,6 +22218,17 @@ typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, #endif /* GL_SUN_vertex */ +/* -------------------------- GL_VIV_shader_binary ------------------------- */ + +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 + +#define GL_SHADER_BINARY_VIV 0x8FC4 + +#define GLEW_VIV_shader_binary GLEW_GET_VAR(__GLEW_VIV_shader_binary) + +#endif /* GL_VIV_shader_binary */ + /* -------------------------- GL_WIN_phong_shading ------------------------- */ #ifndef GL_WIN_phong_shading @@ -16380,6 +22241,15 @@ typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, #endif /* GL_WIN_phong_shading */ +/* ------------------------- GL_WIN_scene_markerXXX ------------------------ */ + +#ifndef GL_WIN_scene_markerXXX +#define GL_WIN_scene_markerXXX 1 + +#define GLEW_WIN_scene_markerXXX GLEW_GET_VAR(__GLEW_WIN_scene_markerXXX) + +#endif /* GL_WIN_scene_markerXXX */ + /* -------------------------- GL_WIN_specular_fog -------------------------- */ #ifndef GL_WIN_specular_fog @@ -16406,22 +22276,7 @@ typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsiz /* ------------------------------------------------------------------------- */ -#if defined(GLEW_MX) && defined(_WIN32) -#define GLEW_FUN_EXPORT -#else -#define GLEW_FUN_EXPORT GLEWAPI -#endif /* GLEW_MX */ -#if defined(GLEW_MX) -#define GLEW_VAR_EXPORT -#else -#define GLEW_VAR_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) && defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; @@ -16722,6 +22577,10 @@ GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage; GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEPROC __glewGetnTexImage; GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount; +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERPROC __glewSpecializeShader; + GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; @@ -16734,6 +22593,14 @@ GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSepa GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD; GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; @@ -16789,6 +22656,8 @@ GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE; GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; @@ -16807,10 +22676,21 @@ GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE; +GLEW_FUN_EXPORT PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE; + GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE; +GLEW_FUN_EXPORT PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE; +GLEW_FUN_EXPORT PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE; +GLEW_FUN_EXPORT PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE; +GLEW_FUN_EXPORT PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE; +GLEW_FUN_EXPORT PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; @@ -16866,7 +22746,6 @@ GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationI GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; @@ -17047,6 +22926,8 @@ GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage; GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage; +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB; + GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; @@ -17224,6 +23105,8 @@ GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThre GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp; + GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; @@ -17401,7 +23284,6 @@ GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB; GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB; -GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; @@ -17437,9 +23319,6 @@ GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; @@ -17768,6 +23647,13 @@ GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT; + GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; @@ -17776,10 +23662,22 @@ GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; + +GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT; +GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT; + +GLEW_FUN_EXPORT PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT; + GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; @@ -17803,6 +23701,8 @@ GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; @@ -18036,6 +23936,21 @@ GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVert GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; +GLEW_FUN_EXPORT PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT; +GLEW_FUN_EXPORT PFNGLENDQUERYEXTPROC __glewEndQueryEXT; +GLEW_FUN_EXPORT PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT; +GLEW_FUN_EXPORT PFNGLISQUERYEXTPROC __glewIsQueryEXT; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT; + GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; @@ -18043,11 +23958,31 @@ GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT; +GLEW_FUN_EXPORT PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEIEXTPROC __glewDisableiEXT; +GLEW_FUN_EXPORT PFNGLENABLEIEXTPROC __glewEnableiEXT; +GLEW_FUN_EXPORT PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT; + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; @@ -18152,16 +24087,55 @@ GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT; + GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT; +GLEW_FUN_EXPORT PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT; +GLEW_FUN_EXPORT PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT; + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT; + GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT; + GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; @@ -18181,6 +24155,8 @@ GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT; +GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT; + GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV; @@ -18188,6 +24164,10 @@ GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTable GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV; GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT; +GLEW_FUN_EXPORT PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT; + GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; @@ -18209,23 +24189,52 @@ GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; +GLEW_FUN_EXPORT PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT; + GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT; + GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; +GLEW_FUN_EXPORT PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT; + +GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; + GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT; + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; @@ -18244,6 +24253,15 @@ GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; @@ -18264,6 +24282,10 @@ GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; +GLEW_FUN_EXPORT PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT; +GLEW_FUN_EXPORT PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt; +GLEW_FUN_EXPORT PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; @@ -18323,6 +24345,11 @@ GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; +GLEW_FUN_EXPORT PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT; +GLEW_FUN_EXPORT PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT; + +GLEW_FUN_EXPORT PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT; + GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; @@ -18348,6 +24375,19 @@ GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointe GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG; + GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL; GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL; GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL; @@ -18384,6 +24424,8 @@ GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup; GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; +GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv; GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv; GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv; @@ -18395,6 +24437,9 @@ GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA; + GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; @@ -18425,6 +24470,26 @@ GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX; GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX; +GLEW_FUN_EXPORT PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX; +GLEW_FUN_EXPORT PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX; +GLEW_FUN_EXPORT PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX; + +GLEW_FUN_EXPORT PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX; +GLEW_FUN_EXPORT PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX; + +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV; +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV; + +GLEW_FUN_EXPORT PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV; + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV; GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV; @@ -18448,6 +24513,26 @@ GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV; GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV; + +GLEW_FUN_EXPORT PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV; +GLEW_FUN_EXPORT PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV; +GLEW_FUN_EXPORT PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV; +GLEW_FUN_EXPORT PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV; +GLEW_FUN_EXPORT PFNGLCREATESTATESNVPROC __glewCreateStatesNV; +GLEW_FUN_EXPORT PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV; +GLEW_FUN_EXPORT PFNGLDELETESTATESNVPROC __glewDeleteStatesNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV; +GLEW_FUN_EXPORT PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV; +GLEW_FUN_EXPORT PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV; +GLEW_FUN_EXPORT PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV; +GLEW_FUN_EXPORT PFNGLISSTATENVPROC __glewIsStateNV; +GLEW_FUN_EXPORT PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV; +GLEW_FUN_EXPORT PFNGLSTATECAPTURENVPROC __glewStateCaptureNV; + GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; @@ -18455,14 +24540,29 @@ GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV; GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV; +GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV; + +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV; + GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV; + GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV; +GLEW_FUN_EXPORT PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV; +GLEW_FUN_EXPORT PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV; +GLEW_FUN_EXPORT PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV; + GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; @@ -18494,10 +24594,27 @@ GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV; + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV; +GLEW_FUN_EXPORT PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; @@ -18593,8 +24710,29 @@ GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV; + GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV; +GLEW_FUN_EXPORT PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV; +GLEW_FUN_EXPORT PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV; + +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV; +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV; + +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV; + GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; @@ -18678,6 +24816,8 @@ GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; +GLEW_FUN_EXPORT PFNGLPOLYGONMODENVPROC __glewPolygonModeNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; @@ -18688,6 +24828,8 @@ GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; +GLEW_FUN_EXPORT PFNGLREADBUFFERNVPROC __glewReadBufferNV; + GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; @@ -18707,6 +24849,10 @@ GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStagePar GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV; GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV; + +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV; GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; @@ -18722,6 +24868,20 @@ GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; +GLEW_FUN_EXPORT PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV; + GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; @@ -18762,6 +24922,8 @@ GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV; + GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; @@ -18876,6 +25038,70 @@ GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStrea GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV; +GLEW_FUN_EXPORT PFNGLDISABLEINVPROC __glewDisableiNV; +GLEW_FUN_EXPORT PFNGLENABLEINVPROC __glewEnableiNV; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV; +GLEW_FUN_EXPORT PFNGLISENABLEDINVPROC __glewIsEnablediNV; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV; + +GLEW_FUN_EXPORT PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV; + +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES; +GLEW_FUN_EXPORT PFNGLCOLORMASKIOESPROC __glewColorMaskiOES; +GLEW_FUN_EXPORT PFNGLDISABLEIOESPROC __glewDisableiOES; +GLEW_FUN_EXPORT PFNGLENABLEIOESPROC __glewEnableiOES; +GLEW_FUN_EXPORT PFNGLISENABLEDIOESPROC __glewIsEnablediOES; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES; + +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES; +GLEW_FUN_EXPORT PFNGLMAPBUFFEROESPROC __glewMapBufferOES; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES; + +GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES; +GLEW_FUN_EXPORT PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES; + GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; @@ -18883,7 +25109,79 @@ GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES; + +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES; + +GLEW_FUN_EXPORT PFNGLTEXBUFFEROESPROC __glewTexBufferOES; +GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES; + +GLEW_FUN_EXPORT PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES; +GLEW_FUN_EXPORT PFNGLTEXGENFOESPROC __glewTexGenfOES; +GLEW_FUN_EXPORT PFNGLTEXGENFVOESPROC __glewTexGenfvOES; +GLEW_FUN_EXPORT PFNGLTEXGENIOESPROC __glewTexGeniOES; +GLEW_FUN_EXPORT PFNGLTEXGENIVOESPROC __glewTexGenivOES; +GLEW_FUN_EXPORT PFNGLTEXGENXOESPROC __glewTexGenxOES; +GLEW_FUN_EXPORT PFNGLTEXGENXVOESPROC __glewTexGenxvOES; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM; + +GLEW_FUN_EXPORT PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM; +GLEW_FUN_EXPORT PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM; +GLEW_FUN_EXPORT PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM; + +GLEW_FUN_EXPORT PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM; +GLEW_FUN_EXPORT PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM; GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx; GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx; @@ -18949,6 +25247,13 @@ GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; +GLEW_FUN_EXPORT PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS; + +GLEW_FUN_EXPORT PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS; + GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; @@ -18965,8 +25270,14 @@ GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; +GLEW_FUN_EXPORT PFNGLADDRESSSPACEPROC __glewAddressSpace; +GLEW_FUN_EXPORT PFNGLDATAPIPEPROC __glewDataPipe; + GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; +GLEW_FUN_EXPORT PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX; +GLEW_FUN_EXPORT PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX; + GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; @@ -18989,8 +25300,33 @@ GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSG GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; +GLEW_FUN_EXPORT PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX; + +GLEW_FUN_EXPORT PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX; + +GLEW_FUN_EXPORT PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX; + GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; +GLEW_FUN_EXPORT PFNGLDEFORMSGIXPROC __glewDeformSGIX; +GLEW_FUN_EXPORT PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX; + +GLEW_FUN_EXPORT PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX; +GLEW_FUN_EXPORT PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX; + GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; @@ -19000,6 +25336,16 @@ GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; +GLEW_FUN_EXPORT PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX; +GLEW_FUN_EXPORT PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX; + +GLEW_FUN_EXPORT PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX; +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; @@ -19008,6 +25354,14 @@ GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParamete GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI; + GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; @@ -19071,12 +25425,6 @@ GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; - -#if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; @@ -19095,15 +25443,23 @@ GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_6; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_3DC_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_ATC_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_multisample_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_sample_positions; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int16; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; @@ -19111,21 +25467,27 @@ GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_program_binary_Z400; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_ballot; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_explicit_vertex_parameter; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_image_load_store_lod; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_gather_bias_lod; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; +GLEW_VAR_EXPORT GLboolean __GLEW_ANDROID_extension_pack_es31a; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample; @@ -19140,15 +25502,24 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_clip_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_color_buffer_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_copy_texture_levels; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_2D_limited_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_max_level; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_packed_float; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; @@ -19204,6 +25575,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gl_spirv; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_int64; @@ -19229,6 +25601,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_polygon_offset_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_post_depth_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; @@ -19270,6 +25643,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture2; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_spirv_extensions; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; @@ -19287,6 +25661,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; @@ -19323,6 +25698,12 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_texture_unnormalized_coordinates; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; @@ -19344,51 +25725,97 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_shader_binary; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_external_wrap_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_YUV_target; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_base_instance; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_extended; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_buffer_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clear_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_control; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_cull_distance; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_half_float; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_conservative_depth; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_image; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_discard_framebuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_disjoint_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_elements_base_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_external_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_float_blend; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_frag_depth; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_instanced_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_map_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_win32; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiple_textures; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_occlusion_query_boolean; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; @@ -19400,32 +25827,64 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_primitive_bounding_box; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_protected_textures; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pvrtc_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_read_format_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_render_snorm; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB_write_control; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_win32; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_group_vote; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_implicit_conversions; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_non_constant_global_initializers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_samplers; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_static_vertex_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_bptc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc_srgb; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; @@ -19433,25 +25892,42 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_sRGB_override; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_norm16; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_query_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rg; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_R8; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_RG8; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shadow_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_view; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_unpack_subimage; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_setXXX; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_win32_keyed_mutex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_window_rectangles; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; +GLEW_VAR_EXPORT GLboolean __GLEW_FJ_shader_binary_GCCSO; GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; @@ -19464,50 +25940,92 @@ GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_framebuffer_downsample; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc2; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_filter_cubic; GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_blackhole_render; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_conservative_rasterization; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_framebuffer_CMAA; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_shader_integer_functions2; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_no_error; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_parallel_shader_compile; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_shader_subgroup; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d; GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_flip_y; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_program_binary_formats; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_shader_integer_functions; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_tile_raster_order; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers; GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render; GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_multicast2; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_linked_gpu_multicast; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_progress_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_3dvision_settings; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_EGL_stream_consumer_external; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_alpha_to_coverage_dither_control; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bgr; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_minmax_factor; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_clip_space_w_scaling; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_command_list; GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_shader_derivatives; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_dilate; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_underestimation; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_nonlinear; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_instanced; GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_vulkan_image; GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_attrib_location; GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fbo_color_attachments; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle; GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; @@ -19517,53 +26035,94 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_barycentric; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_generate_mipmap_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_multicast; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_image_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_instanced_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query; GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_memory_attachment; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_mesh_shader; GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_non_square_matrices; GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pack_subimage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float_linear; GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_platform_binary; GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_polygon_mode; GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_query_resource_tag; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer_front; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_representative_fragment_test; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_robustness_video_memory_purge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_sRGB_formats; GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations; GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_scissor_exclusive; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_noperspective_interpolation; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_subgroup_partitioned; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_texture_footprint; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shading_rate_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_array; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_cube; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_stereo_view_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_array; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_latc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc_update; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_npot_2D_mipmap; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle_compressed; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; @@ -19571,6 +26130,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; @@ -19582,18 +26142,93 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array; GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external_essl3; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_func_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_subtract; GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture; GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth24; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth32; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_element_index_uint; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_extended_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fbo_render_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fragment_precision_high; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_mapbuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_get; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_size_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_sprite; GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_required_internalformat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_rgb8_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_variables; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_image_atomic; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_multisample_interpolation; GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_standard_derivatives; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil1; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil4; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_surfaceless_context; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_3D; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_compression_astc; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_env_crossbar; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_storage_multisample_2d_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_view; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_type_10_10_10_2; GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview; GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview2; +GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture; GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_YUV_texture_gather; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_alpha_test; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_binning_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_driver_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get2; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_framebuffer_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_perfmon_global_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_tiled_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_writeonly_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable; @@ -19603,13 +26238,17 @@ GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address; GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_clip_band_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_line_texgen; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multitexture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_shared_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; @@ -19620,37 +26259,90 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_g_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_r_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_timer_instruments; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cadd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cmultiply; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_calligraphic_fragment; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_matrix_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_table_index_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_complex_polar; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cylinder_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_datapipe; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_decimation; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_pass_instrument; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_dvc; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_factor_to_alpha; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_layers; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_patchy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_scale; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_lighting_space; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragments_instrument; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_icc_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_igloo_interface; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_image_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_impact_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_instrument_error; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_line_quality_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg2; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nurbs_eval; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_occlusion_instrument; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_packed_6bytes; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_tiles; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_polynomial_ffd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_quad_mesh; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_scalebias_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_slim; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_spotlight_cutoff; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subdiv_patch; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subsample; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_mipmap_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_phase; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_supersample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vector_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcba; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex_type; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_fft; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; @@ -19660,14 +26352,11 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_VIV_shader_binary; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_scene_markerXXX; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; - -#ifdef GLEW_MX -}; /* GLEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------- */ /* error codes */ @@ -19676,6 +26365,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; #define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ #define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ #define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ +#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */ /* string codes */ #define GLEW_VERSION 1 @@ -19688,40 +26378,24 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; /* GLEW version info */ /* -VERSION 1.13.0 -VERSION_MAJOR 1 -VERSION_MINOR 13 +VERSION 2.2.0 +VERSION_MAJOR 2 +VERSION_MINOR 2 VERSION_MICRO 0 */ /* API */ -#ifdef GLEW_MX - -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum GLEWAPIENTRY glewContextInit (GLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext *ctx, const char *name); - -#define glewInit() glewContextInit(glewGetContext()) -#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) -#ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x -#else -# define GLEW_GET_FUN(x) x -#endif - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY glewInit (void); GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); #define glewIsExtensionSupported(x) glewIsSupported(x) +#ifndef GLEW_GET_VAR #define GLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef GLEW_GET_FUN +#define GLEW_GET_FUN(x) x +#endif GLEWAPI GLboolean glewExperimental; GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); diff --git a/src/glew/include/GL/glxew.h b/src/glew/include/GL/glxew.h index d803d260b3..0474ed5ed8 100644 --- a/src/glew/include/GL/glxew.h +++ b/src/glew/include/GL/glxew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -98,7 +98,12 @@ #include #include #include -#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif #ifdef __cplusplus extern "C" { @@ -392,7 +397,7 @@ typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); #ifndef GLX_ARB_context_flush_control #define GLX_ARB_context_flush_control 1 -#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 #define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 #define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 @@ -405,13 +410,13 @@ typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); #ifndef GLX_ARB_create_context #define GLX_ARB_create_context 1 -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_FLAGS_ARB 0x2094 -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int* attrib_list); #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) @@ -419,6 +424,17 @@ typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBCo #endif /* GLX_ARB_create_context */ +/* -------------------- GLX_ARB_create_context_no_error -------------------- */ + +#ifndef GLX_ARB_create_context_no_error +#define GLX_ARB_create_context_no_error 1 + +#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define GLXEW_ARB_create_context_no_error GLXEW_GET_VAR(__GLXEW_ARB_create_context_no_error) + +#endif /* GLX_ARB_create_context_no_error */ + /* --------------------- GLX_ARB_create_context_profile -------------------- */ #ifndef GLX_ARB_create_context_profile @@ -600,6 +616,20 @@ typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, i #endif /* GLX_EXT_buffer_age */ +/* ------------------------ GLX_EXT_context_priority ----------------------- */ + +#ifndef GLX_EXT_context_priority +#define GLX_EXT_context_priority 1 + +#define GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100 +#define GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101 +#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102 +#define GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103 + +#define GLXEW_EXT_context_priority GLXEW_GET_VAR(__GLXEW_EXT_context_priority) + +#endif /* GLX_EXT_context_priority */ + /* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ #ifndef GLX_EXT_create_context_es2_profile @@ -658,11 +688,13 @@ typedef XID GLXContextID; typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef Display* ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute, int* value); #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) +#define glXGetCurrentDisplayEXT GLXEW_GET_FUN(__glewXGetCurrentDisplayEXT) #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) @@ -670,6 +702,26 @@ typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context #endif /* GLX_EXT_import_context */ +/* ---------------------------- GLX_EXT_libglvnd --------------------------- */ + +#ifndef GLX_EXT_libglvnd +#define GLX_EXT_libglvnd 1 + +#define GLX_VENDOR_NAMES_EXT 0x20F6 + +#define GLXEW_EXT_libglvnd GLXEW_GET_VAR(__GLXEW_EXT_libglvnd) + +#endif /* GLX_EXT_libglvnd */ + +/* ----------------------- GLX_EXT_no_config_context ----------------------- */ + +#ifndef GLX_EXT_no_config_context +#define GLX_EXT_no_config_context 1 + +#define GLXEW_EXT_no_config_context GLXEW_GET_VAR(__GLXEW_EXT_no_config_context) + +#endif /* GLX_EXT_no_config_context */ + /* -------------------------- GLX_EXT_scene_marker ------------------------- */ #ifndef GLX_EXT_scene_marker @@ -741,8 +793,10 @@ typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, #define GLX_TEXTURE_1D_EXT 0x20DB #define GLX_TEXTURE_2D_EXT 0x20DC #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_EXT 0x20DE #define GLX_FRONT_LEFT_EXT 0x20DE #define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_EXT 0x20E0 #define GLX_BACK_LEFT_EXT 0x20E0 #define GLX_BACK_RIGHT_EXT 0x20E1 #define GLX_AUX0_EXT 0x20E2 @@ -756,8 +810,8 @@ typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, #define GLX_AUX8_EXT 0x20EA #define GLX_AUX9_EXT 0x20EB -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer, const int* attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer); #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) @@ -850,7 +904,7 @@ typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawabl #ifndef GLX_MESA_pixmap_colormap #define GLX_MESA_pixmap_colormap 1 -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap); #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) @@ -874,12 +928,11 @@ typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D -#define GLX_RENDERER_ID_MESA 0x818E typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value); typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute); -typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int *value); -typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute); +typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int* value); +typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display* dpy, int screen, int renderer, int attribute); #define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA) #define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA) @@ -895,7 +948,7 @@ typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int sc #ifndef GLX_MESA_release_buffers #define GLX_MESA_release_buffers 1 -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable drawable); #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) @@ -986,6 +1039,21 @@ typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawabl #endif /* GLX_NV_float_buffer */ +/* ------------------------ GLX_NV_multigpu_context ------------------------ */ + +#ifndef GLX_NV_multigpu_context +#define GLX_NV_multigpu_context 1 + +#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define GLXEW_NV_multigpu_context GLXEW_GET_VAR(__GLXEW_NV_multigpu_context) + +#endif /* GLX_NV_multigpu_context */ + /* ---------------------- GLX_NV_multisample_coverage ---------------------- */ #ifndef GLX_NV_multisample_coverage @@ -1005,8 +1073,8 @@ typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawabl #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int* attrib_list); +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display* dpy, int screen, int* nelements); #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) @@ -1015,6 +1083,17 @@ typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int #endif /* GLX_NV_present_video */ +/* ------------------ GLX_NV_robustness_video_memory_purge ----------------- */ + +#ifndef GLX_NV_robustness_video_memory_purge +#define GLX_NV_robustness_video_memory_purge 1 + +#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7 + +#define GLXEW_NV_robustness_video_memory_purge GLXEW_GET_VAR(__GLXEW_NV_robustness_video_memory_purge) + +#endif /* GLX_NV_robustness_video_memory_purge */ + /* --------------------------- GLX_NV_swap_group --------------------------- */ #ifndef GLX_NV_swap_group @@ -1022,9 +1101,9 @@ typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint* count); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier); typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) @@ -1065,9 +1144,9 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); typedef XID GLXVideoCaptureDeviceNV; typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); +typedef GLXVideoCaptureDeviceNV* ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int* nelements); typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); +typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value); typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) @@ -1097,11 +1176,11 @@ typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoC #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long* pulCounterPbuffer, GLboolean bBlock); #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) @@ -1213,12 +1292,12 @@ typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, i typedef XID GLXFBConfigIDSGIX; typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); +typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display* dpy, int screen, int* attrib_list, int* nelements); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap); +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo* vis); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config); #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) @@ -1332,10 +1411,10 @@ typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Disp typedef XID GLXPbufferSGIX; typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); +typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int* attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long* mask); +typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int* value); typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) @@ -1353,8 +1432,8 @@ typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, #ifndef GLX_SGIX_swap_barrier #define GLX_SGIX_swap_barrier 1 -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display* dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display* dpy, int screen, int* max); #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) @@ -1368,7 +1447,7 @@ typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, #ifndef GLX_SGIX_swap_group #define GLX_SGIX_swap_group 1 -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display* dpy, GLXDrawable drawable, GLXDrawable member); #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) @@ -1387,8 +1466,8 @@ typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawabl typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int* x, int* y, int* w, int* h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh); #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) @@ -1472,7 +1551,7 @@ typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigne #ifndef GLX_SUN_get_transparent_index #define GLX_SUN_get_transparent_index 1 -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long* pTransparentIndex); #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) @@ -1500,13 +1579,8 @@ typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX -#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT -#define GLXEW_VAR_EXPORT -#else #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; @@ -1546,6 +1620,7 @@ GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT; GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; @@ -1658,12 +1733,6 @@ GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; - -#if defined(GLEW_MX) -struct GLXEWContextStruct -{ -#endif /* GLEW_MX */ - GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; @@ -1673,6 +1742,7 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_no_error; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; @@ -1685,11 +1755,14 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_context_priority; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_libglvnd; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_no_config_context; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; @@ -1709,8 +1782,10 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multigpu_context; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; @@ -1734,34 +1809,18 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; - -#ifdef GLEW_MX -}; /* GLXEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------ */ -#ifdef GLEW_MX - -typedef struct GLXEWContextStruct GLXEWContext; -GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name); - -#define glxewInit() glxewContextInit(glxewGetContext()) -#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) -#define GLXEW_GET_FUN(x) x - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY glxewInit (); GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); +#ifndef GLXEW_GET_VAR #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLXEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef GLXEW_GET_FUN +#define GLXEW_GET_FUN(x) x +#endif GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); diff --git a/src/glew/include/GL/wglew.h b/src/glew/include/GL/wglew.h index c13c54a5ff..7e2d0904cb 100644 --- a/src/glew/include/GL/wglew.h +++ b/src/glew/include/GL/wglew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -67,9 +67,6 @@ # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN 1 # endif -# ifdef NOGDI -# undef NOGDI -# endif #include # undef WIN32_LEAN_AND_MEAN #endif @@ -191,7 +188,7 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in #ifndef WGL_ARB_context_flush_control #define WGL_ARB_context_flush_control 1 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 #define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 #define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 @@ -204,14 +201,13 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in #ifndef WGL_ARB_create_context #define WGL_ARB_create_context 1 -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 #define WGL_CONTEXT_FLAGS_ARB 0x2094 #define ERROR_INVALID_VERSION_ARB 0x2095 -#define ERROR_INVALID_PROFILE_ARB 0x2096 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); @@ -221,6 +217,17 @@ typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShar #endif /* WGL_ARB_create_context */ +/* -------------------- WGL_ARB_create_context_no_error -------------------- */ + +#ifndef WGL_ARB_create_context_no_error +#define WGL_ARB_create_context_no_error 1 + +#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define WGLEW_ARB_create_context_no_error WGLEW_GET_VAR(__WGLEW_ARB_create_context_no_error) + +#endif /* WGL_ARB_create_context_no_error */ + /* --------------------- WGL_ARB_create_context_profile -------------------- */ #ifndef WGL_ARB_create_context_profile @@ -228,6 +235,7 @@ typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShar #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define ERROR_INVALID_PROFILE_ARB 0x2096 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 #define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) @@ -280,7 +288,7 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) @@ -389,9 +397,9 @@ typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int* piValues); #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) @@ -509,6 +517,19 @@ typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, con #endif /* WGL_ATI_render_texture_rectangle */ +/* --------------------------- WGL_EXT_colorspace -------------------------- */ + +#ifndef WGL_EXT_colorspace +#define WGL_EXT_colorspace 1 + +#define WGL_COLORSPACE_SRGB_EXT 0x3089 +#define WGL_COLORSPACE_LINEAR_EXT 0x308A +#define WGL_COLORSPACE_EXT 0x309D + +#define WGLEW_EXT_colorspace WGLEW_GET_VAR(__WGLEW_EXT_colorspace) + +#endif /* WGL_EXT_colorspace */ + /* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ #ifndef WGL_EXT_create_context_es2_profile @@ -549,8 +570,8 @@ typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, con typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); +typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort* table, GLuint length); #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) @@ -592,7 +613,7 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) @@ -698,9 +719,9 @@ typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC #define WGL_TYPE_RGBA_EXT 0x202B #define WGL_TYPE_COLORINDEX_EXT 0x202C -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int* piValues); #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) @@ -773,9 +794,9 @@ typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAt #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT* puGreen, USHORT* puBlue); typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT* puGreen, const USHORT* puBlue); typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) @@ -813,7 +834,7 @@ typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDela typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); +typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT* uMaxPixelDelay); #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) @@ -840,10 +861,10 @@ typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); +typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE* pEvent, const LPVOID* pAddress, const DWORD* pSize, UINT count); typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); +typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID* pAddress, UINT count); #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) @@ -859,8 +880,8 @@ typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* #ifndef WGL_I3D_swap_frame_lock #define WGL_I3D_swap_frame_lock 1 -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); @@ -881,7 +902,7 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD* pMissedFrames, float* pLastMissedUsage); #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) @@ -897,9 +918,9 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO #ifndef WGL_NV_DX_interop #define WGL_NV_DX_interop 1 -#define WGL_ACCESS_READ_ONLY_NV 0x0000 -#define WGL_ACCESS_READ_WRITE_NV 0x0001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 +#define WGL_ACCESS_READ_ONLY_NV 0x00000000 +#define WGL_ACCESS_READ_WRITE_NV 0x00000001 +#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); @@ -1010,6 +1031,21 @@ typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); #endif /* WGL_NV_gpu_affinity */ +/* ------------------------ WGL_NV_multigpu_context ------------------------ */ + +#ifndef WGL_NV_multigpu_context +#define WGL_NV_multigpu_context 1 + +#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define WGLEW_NV_multigpu_context WGLEW_GET_VAR(__WGLEW_NV_multigpu_context) + +#endif /* WGL_NV_multigpu_context */ + /* ---------------------- WGL_NV_multisample_coverage ---------------------- */ #ifndef WGL_NV_multisample_coverage @@ -1048,7 +1084,6 @@ typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* pi #ifndef WGL_NV_render_depth_texture #define WGL_NV_render_depth_texture 1 -#define WGL_NO_TEXTURE_ARB 0x2077 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 @@ -1080,8 +1115,8 @@ typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* pi typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint* maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint* barrier); typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); #define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) @@ -1100,8 +1135,8 @@ typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); #ifndef WGL_NV_vertex_array_range #define WGL_NV_vertex_array_range 1 -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); +typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void* pointer); #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) @@ -1159,7 +1194,7 @@ DECLARE_HANDLE(HPVIDEODEV); typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); @@ -1180,12 +1215,12 @@ typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, in #ifndef WGL_OML_sync_control #define WGL_OML_sync_control 1 -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32* denominator); +typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64* msc, INT64* sbc); typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64* msc, INT64* sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64* msc, INT64* sbc); #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) @@ -1200,18 +1235,8 @@ typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT6 /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX -#define WGLEW_FUN_EXPORT -#define WGLEW_VAR_EXPORT -#else #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ - -#ifdef GLEW_MX -struct WGLEWContextStruct -{ -#endif /* GLEW_MX */ WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; @@ -1368,6 +1393,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_no_error; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; @@ -1382,6 +1408,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation; WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_colorspace; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; @@ -1407,6 +1434,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multigpu_context; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; @@ -1416,34 +1444,18 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; - -#ifdef GLEW_MX -}; /* WGLEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX - -typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name); - -#define wglewInit() wglewContextInit(wglewGetContext()) -#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) -#define WGLEW_GET_FUN(x) wglewGetContext()->x - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY wglewInit (); GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); +#ifndef WGLEW_GET_VAR #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define WGLEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef WGLEW_GET_FUN +#define WGLEW_GET_FUN(x) x +#endif GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); diff --git a/src/glew/src/glew.c b/src/glew/src/glew.c index 2ed1c74a5d..967c5c91f9 100644 --- a/src/glew/src/glew.c +++ b/src/glew/src/glew.c @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -30,12 +30,26 @@ ** THE POSSIBILITY OF SUCH DAMAGE. */ -#if 1 -// #ifdef SLIC3R_GUI +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif -#include - -#if defined(_WIN32) +#if defined(GLEW_OSMESA) +# define GLAPI extern +# include +#elif defined(GLEW_EGL) +# include +#elif defined(_WIN32) +/* + * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus + * wglGetProcAddress won't be declared. It will instead be implicitly declared, + * potentially incorrectly, which we don't want. + */ +# if defined(NOGDI) +# undef NOGDI +# endif # include #elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) # include @@ -43,36 +57,8 @@ #include /* For size_t */ -/* - * Define glewGetContext and related helper macros. - */ -#ifdef GLEW_MX -# define glewGetContext() ctx -# ifdef _WIN32 -# define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx -# define GLEW_CONTEXT_ARG_VAR_INIT ctx -# define wglewGetContext() ctx -# define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx -# define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx -# else /* _WIN32 */ -# define GLEW_CONTEXT_ARG_DEF_INIT void -# define GLEW_CONTEXT_ARG_VAR_INIT -# define glxewGetContext() ctx -# define GLXEW_CONTEXT_ARG_DEF_INIT void -# define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx -# endif /* _WIN32 */ -# define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx -#else /* GLEW_MX */ -# define GLEW_CONTEXT_ARG_DEF_INIT void -# define GLEW_CONTEXT_ARG_VAR_INIT -# define GLEW_CONTEXT_ARG_DEF_LIST void -# define WGLEW_CONTEXT_ARG_DEF_INIT void -# define WGLEW_CONTEXT_ARG_DEF_LIST void -# define GLXEW_CONTEXT_ARG_DEF_INIT void -# define GLXEW_CONTEXT_ARG_DEF_LIST void -#endif /* GLEW_MX */ - -#if defined(GLEW_REGAL) +#if defined(GLEW_EGL) +#elif defined(GLEW_REGAL) /* In GLEW_REGAL mode we call direcly into the linked libRegal.so glGetProcAddressREGAL for looking up @@ -124,7 +110,7 @@ void* NSGLGetProcAddress (const GLubyte *name) { static void* image = NULL; void* addr; - if (NULL == image) + if (NULL == image) { image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY); } @@ -173,7 +159,11 @@ void* NSGLGetProcAddress (const GLubyte *name) * Define glewGetProcAddress. */ #if defined(GLEW_REGAL) -# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *) name) +# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name) +#elif defined(GLEW_OSMESA) +# define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name) +#elif defined(GLEW_EGL) +# define glewGetProcAddress(name) eglGetProcAddress((const char *)name) #elif defined(_WIN32) # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) @@ -193,34 +183,28 @@ void* NSGLGetProcAddress (const GLubyte *name) */ #undef GLEW_GET_VAR -#ifdef GLEW_MX -# define GLEW_GET_VAR(x) (glewGetContext()->x) -#else /* GLEW_MX */ # define GLEW_GET_VAR(x) (x) -#endif /* GLEW_MX */ #ifdef WGLEW_GET_VAR # undef WGLEW_GET_VAR -# ifdef GLEW_MX -# define WGLEW_GET_VAR(x) (wglewGetContext()->x) -# else /* GLEW_MX */ -# define WGLEW_GET_VAR(x) (x) -# endif /* GLEW_MX */ +# define WGLEW_GET_VAR(x) (x) #endif /* WGLEW_GET_VAR */ #ifdef GLXEW_GET_VAR # undef GLXEW_GET_VAR -# ifdef GLEW_MX -# define GLXEW_GET_VAR(x) (glxewGetContext()->x) -# else /* GLEW_MX */ -# define GLXEW_GET_VAR(x) (x) -# endif /* GLEW_MX */ +# define GLXEW_GET_VAR(x) (x) #endif /* GLXEW_GET_VAR */ +#ifdef EGLEW_GET_VAR +# undef EGLEW_GET_VAR +# define EGLEW_GET_VAR(x) (x) +#endif /* EGLEW_GET_VAR */ + /* * GLEW, just like OpenGL or GLU, does not rely on the standard C library. * These functions implement the functionality required in this file. */ + static GLuint _glewStrLen (const GLubyte* s) { GLuint i=0; @@ -234,9 +218,20 @@ static GLuint _glewStrCLen (const GLubyte* s, GLubyte c) GLuint i=0; if (s == NULL) return 0; while (s[i] != '\0' && s[i] != c) i++; - return (s[i] == '\0' || s[i] == c) ? i : 0; + return i; } +static GLuint _glewStrCopy(char *d, const char *s, char c) +{ + GLuint i=0; + if (s == NULL) return 0; + while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; } + d[i] = '\0'; + return i; +} + +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) { GLuint i=0; @@ -245,6 +240,8 @@ static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++; return i == n ? GL_TRUE : GL_FALSE; } +#endif +#endif static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) { @@ -305,6 +302,8 @@ static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, * other extension names. Could use strtok() but the constant * string returned by glGetString might be in read-only memory. */ +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end) { const GLubyte* p; @@ -318,8 +317,8 @@ static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, c } return GL_FALSE; } - -#if !defined(_WIN32) || !defined(GLEW_MX) +#endif +#endif PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D = NULL; PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements = NULL; @@ -620,6 +619,10 @@ PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage = NULL; PFNGLGETNTEXIMAGEPROC __glewGetnTexImage = NULL; PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount = NULL; +PFNGLSPECIALIZESHADERPROC __glewSpecializeShader = NULL; + PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX = NULL; PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD = NULL; @@ -632,6 +635,14 @@ PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD = PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD = NULL; PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD = NULL; + +PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD = NULL; +PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD = NULL; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD = NULL; +PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD = NULL; + PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD = NULL; PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD = NULL; @@ -687,6 +698,8 @@ PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE = NULL; PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE = NULL; +PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE = NULL; + PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE = NULL; PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE = NULL; PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE = NULL; @@ -705,10 +718,21 @@ PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE = NULL; PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE = NULL; PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE = NULL; +PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE = NULL; + PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE = NULL; PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE = NULL; PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE = NULL; +PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE = NULL; +PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE = NULL; +PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE = NULL; +PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE = NULL; +PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE = NULL; +PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE = NULL; +PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE = NULL; + PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE = NULL; PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE = NULL; @@ -764,7 +788,6 @@ PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed = NULL; PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex = NULL; PFNGLBUFFERSTORAGEPROC __glewBufferStorage = NULL; -PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL; PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB = NULL; @@ -945,6 +968,8 @@ PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri = NULL; PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage = NULL; PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage = NULL; +PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB = NULL; + PFNGLGETUNIFORMDVPROC __glewGetUniformdv = NULL; PFNGLUNIFORM1DPROC __glewUniform1d = NULL; PFNGLUNIFORM1DVPROC __glewUniform1dv = NULL; @@ -1122,6 +1147,8 @@ PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB = NULL; PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB = NULL; PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB = NULL; +PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp = NULL; + PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv = NULL; PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex = NULL; PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation = NULL; @@ -1299,7 +1326,6 @@ PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB = NULL; PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB = NULL; PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB = NULL; -PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL; PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync = NULL; PFNGLDELETESYNCPROC __glewDeleteSync = NULL; @@ -1335,9 +1361,6 @@ PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample = NULL; PFNGLTEXSTORAGE1DPROC __glewTexStorage1D = NULL; PFNGLTEXSTORAGE2DPROC __glewTexStorage2D = NULL; PFNGLTEXSTORAGE3DPROC __glewTexStorage3D = NULL; -PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL; -PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL; -PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL; PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample = NULL; PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample = NULL; @@ -1666,6 +1689,13 @@ PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI = NULL; PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI = NULL; PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI = NULL; +PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT = NULL; +PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT = NULL; + +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT = NULL; + PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT = NULL; PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT = NULL; PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT = NULL; @@ -1674,10 +1704,22 @@ PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT = NULL; PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT = NULL; +PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT = NULL; + PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT = NULL; PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT = NULL; +PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL; + +PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT = NULL; +PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT = NULL; + +PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT = NULL; + PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT = NULL; PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT = NULL; @@ -1701,6 +1743,8 @@ PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT = NULL; PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT = NULL; PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT = NULL; +PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT = NULL; + PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT = NULL; PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT = NULL; PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT = NULL; @@ -1934,6 +1978,21 @@ PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetE PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT = NULL; PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT = NULL; +PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT = NULL; + +PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT = NULL; +PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT = NULL; +PFNGLENDQUERYEXTPROC __glewEndQueryEXT = NULL; +PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT = NULL; +PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT = NULL; +PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT = NULL; +PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT = NULL; +PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT = NULL; +PFNGLISQUERYEXTPROC __glewIsQueryEXT = NULL; +PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT = NULL; + +PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT = NULL; + PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT = NULL; PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT = NULL; PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT = NULL; @@ -1941,11 +2000,31 @@ PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT = NULL; PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT = NULL; PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT = NULL; +PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT = NULL; +PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT = NULL; +PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT = NULL; +PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT = NULL; +PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT = NULL; +PFNGLDISABLEIEXTPROC __glewDisableiEXT = NULL; +PFNGLENABLEIEXTPROC __glewEnableiEXT = NULL; +PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT = NULL; + +PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT = NULL; + PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT = NULL; PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT = NULL; +PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT = NULL; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT = NULL; + +PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT = NULL; + PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT = NULL; PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT = NULL; PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT = NULL; @@ -2050,16 +2129,55 @@ PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT = NULL; PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT = NULL; +PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT = NULL; + PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT = NULL; PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT = NULL; PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT = NULL; +PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT = NULL; + +PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT = NULL; +PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT = NULL; +PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT = NULL; +PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT = NULL; +PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT = NULL; +PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT = NULL; +PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT = NULL; +PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT = NULL; +PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT = NULL; +PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT = NULL; +PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT = NULL; +PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT = NULL; +PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT = NULL; +PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT = NULL; +PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT = NULL; +PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT = NULL; +PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT = NULL; +PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT = NULL; + +PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT = NULL; + +PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT = NULL; +PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT = NULL; + PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT = NULL; PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT = NULL; + PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT = NULL; PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT = NULL; +PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT = NULL; + +PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT = NULL; +PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT = NULL; +PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT = NULL; + PFNGLCOLORTABLEEXTPROC __glewColorTableEXT = NULL; PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT = NULL; PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT = NULL; @@ -2079,6 +2197,8 @@ PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT = NULL; PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT = NULL; +PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT = NULL; + PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT = NULL; PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV = NULL; @@ -2086,6 +2206,10 @@ PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV = NULL; PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV = NULL; PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT = NULL; +PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT = NULL; +PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT = NULL; +PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT = NULL; + PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT = NULL; PFNGLENDSCENEEXTPROC __glewEndSceneEXT = NULL; @@ -2107,23 +2231,52 @@ PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT = NULL; PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT = NULL; PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT = NULL; +PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT = NULL; +PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT = NULL; +PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT = NULL; +PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT = NULL; +PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT = NULL; +PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT = NULL; +PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT = NULL; + +PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT = NULL; + +PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT = NULL; +PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT = NULL; + PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT = NULL; PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT = NULL; PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT = NULL; +PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT = NULL; + PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT = NULL; PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT = NULL; +PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT = NULL; +PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT = NULL; +PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT = NULL; + +PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT = NULL; +PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL; + PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT = NULL; PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT = NULL; PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT = NULL; PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT = NULL; +PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT = NULL; + PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT = NULL; PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT = NULL; +PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT = NULL; +PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT = NULL; +PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT = NULL; +PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT = NULL; + PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT = NULL; PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT = NULL; @@ -2142,6 +2295,15 @@ PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT = NULL; PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT = NULL; +PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT = NULL; +PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT = NULL; +PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT = NULL; +PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL; +PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL; +PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL; + +PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT = NULL; + PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT = NULL; PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT = NULL; @@ -2162,6 +2324,10 @@ PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT = NULL; PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT = NULL; PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT = NULL; +PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT = NULL; +PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt = NULL; +PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT = NULL; + PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT = NULL; PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT = NULL; @@ -2221,6 +2387,11 @@ PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT = NULL; PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT = NULL; PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT = NULL; +PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT = NULL; +PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT = NULL; + +PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT = NULL; + PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT = NULL; PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY = NULL; @@ -2246,6 +2417,19 @@ PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM = NULL; PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM = NULL; PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM = NULL; +PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG = NULL; +PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG = NULL; +PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG = NULL; +PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG = NULL; +PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG = NULL; +PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG = NULL; + +PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG = NULL; + +PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG = NULL; + PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL = NULL; PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL = NULL; PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL = NULL; @@ -2282,6 +2466,8 @@ PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel = NULL; PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup = NULL; PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup = NULL; +PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR = NULL; + PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv = NULL; PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv = NULL; PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv = NULL; @@ -2293,6 +2479,9 @@ PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion = NULL; PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion = NULL; PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion = NULL; +PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA = NULL; + PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA = NULL; PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA = NULL; @@ -2323,6 +2512,26 @@ PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA = NULL; PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX = NULL; PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX = NULL; +PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX = NULL; +PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX = NULL; +PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX = NULL; +PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX = NULL; +PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX = NULL; +PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX = NULL; + +PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX = NULL; +PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX = NULL; +PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX = NULL; + +PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX = NULL; +PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX = NULL; +PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX = NULL; + +PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV = NULL; +PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV = NULL; + +PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV = NULL; + PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV = NULL; @@ -2346,6 +2555,26 @@ PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV = NULL; PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV = NULL; PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV = NULL; +PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV = NULL; + +PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV = NULL; +PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV = NULL; +PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV = NULL; +PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV = NULL; +PFNGLCREATESTATESNVPROC __glewCreateStatesNV = NULL; +PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV = NULL; +PFNGLDELETESTATESNVPROC __glewDeleteStatesNV = NULL; +PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV = NULL; +PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV = NULL; +PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV = NULL; +PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV = NULL; +PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV = NULL; +PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV = NULL; +PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV = NULL; +PFNGLISSTATENVPROC __glewIsStateNV = NULL; +PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV = NULL; +PFNGLSTATECAPTURENVPROC __glewStateCaptureNV = NULL; + PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV = NULL; PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV = NULL; @@ -2353,14 +2582,29 @@ PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV = NULL; PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV = NULL; +PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV = NULL; + +PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV = NULL; + PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV = NULL; PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV = NULL; PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV = NULL; PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV = NULL; +PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV = NULL; + +PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV = NULL; +PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV = NULL; + PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV = NULL; +PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV = NULL; +PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV = NULL; +PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV = NULL; +PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV = NULL; +PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV = NULL; + PFNGLEVALMAPSNVPROC __glewEvalMapsNV = NULL; PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV = NULL; PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV = NULL; @@ -2392,10 +2636,27 @@ PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV = NULL; +PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV = NULL; + +PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV = NULL; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV = NULL; PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV = NULL; +PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV = NULL; +PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV = NULL; +PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV = NULL; +PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV = NULL; +PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV = NULL; +PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV = NULL; +PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV = NULL; +PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV = NULL; + PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV = NULL; PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV = NULL; PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV = NULL; @@ -2491,8 +2752,29 @@ PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV = NULL; PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV = NULL; PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV = NULL; +PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV = NULL; + PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV = NULL; +PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV = NULL; +PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV = NULL; +PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV = NULL; +PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV = NULL; +PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV = NULL; +PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV = NULL; + +PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV = NULL; +PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV = NULL; +PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV = NULL; +PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV = NULL; + +PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV = NULL; +PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV = NULL; +PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV = NULL; +PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV = NULL; +PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV = NULL; +PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV = NULL; + PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV = NULL; PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV = NULL; PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV = NULL; @@ -2576,6 +2858,8 @@ PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV = NULL; PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV = NULL; PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV = NULL; +PFNGLPOLYGONMODENVPROC __glewPolygonModeNV = NULL; + PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV = NULL; PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV = NULL; PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV = NULL; @@ -2586,6 +2870,8 @@ PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV = NULL; PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV = NULL; PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV = NULL; +PFNGLREADBUFFERNVPROC __glewReadBufferNV = NULL; + PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV = NULL; PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV = NULL; PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV = NULL; @@ -2605,6 +2891,10 @@ PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV = NUL PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV = NULL; PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV = NULL; +PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV = NULL; + +PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV = NULL; +PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV = NULL; PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV = NULL; PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV = NULL; @@ -2620,6 +2910,20 @@ PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV = NULL; PFNGLUNIFORMUI64NVPROC __glewUniformui64NV = NULL; PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV = NULL; +PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV = NULL; +PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV = NULL; +PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV = NULL; +PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV = NULL; +PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV = NULL; +PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV = NULL; + +PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV = NULL; +PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV = NULL; +PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV = NULL; +PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV = NULL; + PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV = NULL; PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV = NULL; @@ -2660,6 +2964,8 @@ PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV = NULL; PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV = NULL; PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV = NULL; +PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV = NULL; + PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV = NULL; PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV = NULL; @@ -2774,6 +3080,70 @@ PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV = PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV = NULL; PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV = NULL; +PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV = NULL; +PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV = NULL; +PFNGLDISABLEINVPROC __glewDisableiNV = NULL; +PFNGLENABLEINVPROC __glewEnableiNV = NULL; +PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV = NULL; +PFNGLISENABLEDINVPROC __glewIsEnablediNV = NULL; +PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV = NULL; +PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV = NULL; +PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV = NULL; +PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV = NULL; +PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV = NULL; +PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV = NULL; + +PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV = NULL; + +PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES = NULL; +PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES = NULL; + +PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES = NULL; + +PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES = NULL; + +PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES = NULL; + +PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES = NULL; + +PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES = NULL; +PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES = NULL; +PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES = NULL; +PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES = NULL; +PFNGLCOLORMASKIOESPROC __glewColorMaskiOES = NULL; +PFNGLDISABLEIOESPROC __glewDisableiOES = NULL; +PFNGLENABLEIOESPROC __glewEnableiOES = NULL; +PFNGLISENABLEDIOESPROC __glewIsEnablediOES = NULL; + +PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES = NULL; +PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES = NULL; +PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES = NULL; +PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES = NULL; +PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES = NULL; +PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES = NULL; +PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES = NULL; +PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES = NULL; +PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES = NULL; +PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES = NULL; +PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES = NULL; +PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES = NULL; + +PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES = NULL; +PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES = NULL; + +PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES = NULL; +PFNGLMAPBUFFEROESPROC __glewMapBufferOES = NULL; +PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES = NULL; + +PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES = NULL; +PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES = NULL; +PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES = NULL; + +PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES = NULL; + PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES = NULL; PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES = NULL; PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES = NULL; @@ -2781,7 +3151,79 @@ PFNGLFRUSTUMFOESPROC __glewFrustumfOES = NULL; PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES = NULL; PFNGLORTHOFOESPROC __glewOrthofOES = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES = NULL; +PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES = NULL; +PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES = NULL; +PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES = NULL; +PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES = NULL; + +PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES = NULL; +PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES = NULL; +PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES = NULL; +PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES = NULL; +PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES = NULL; +PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES = NULL; +PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES = NULL; +PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES = NULL; + +PFNGLTEXBUFFEROESPROC __glewTexBufferOES = NULL; +PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES = NULL; + +PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES = NULL; +PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES = NULL; +PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES = NULL; +PFNGLTEXGENFOESPROC __glewTexGenfOES = NULL; +PFNGLTEXGENFVOESPROC __glewTexGenfvOES = NULL; +PFNGLTEXGENIOESPROC __glewTexGeniOES = NULL; +PFNGLTEXGENIVOESPROC __glewTexGenivOES = NULL; +PFNGLTEXGENXOESPROC __glewTexGenxOES = NULL; +PFNGLTEXGENXVOESPROC __glewTexGenxvOES = NULL; + +PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES = NULL; + +PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES = NULL; + +PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES = NULL; +PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES = NULL; +PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES = NULL; +PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES = NULL; + PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR = NULL; + +PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR = NULL; + +PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM = NULL; + +PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM = NULL; +PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM = NULL; +PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM = NULL; +PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM = NULL; + +PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM = NULL; +PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM = NULL; +PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM = NULL; +PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM = NULL; +PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM = NULL; +PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM = NULL; +PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM = NULL; +PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM = NULL; + +PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM = NULL; +PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM = NULL; +PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM = NULL; +PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM = NULL; + +PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM = NULL; +PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM = NULL; + +PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM = NULL; + +PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM = NULL; + +PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM = NULL; +PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM = NULL; PFNGLALPHAFUNCXPROC __glewAlphaFuncx = NULL; PFNGLCLEARCOLORXPROC __glewClearColorx = NULL; @@ -2847,6 +3289,13 @@ PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS = NULL; PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS = NULL; PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS = NULL; +PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS = NULL; +PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS = NULL; +PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS = NULL; +PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS = NULL; + +PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS = NULL; + PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS = NULL; PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS = NULL; @@ -2863,8 +3312,14 @@ PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX = NULL; PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX = NULL; PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX = NULL; +PFNGLADDRESSSPACEPROC __glewAddressSpace = NULL; +PFNGLDATAPIPEPROC __glewDataPipe = NULL; + PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX = NULL; +PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX = NULL; +PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX = NULL; + PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX = NULL; PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX = NULL; @@ -2887,8 +3342,33 @@ PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX = NULL; PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX = NULL; +PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX = NULL; + +PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX = NULL; +PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX = NULL; +PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX = NULL; +PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX = NULL; +PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX = NULL; +PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX = NULL; +PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv = NULL; +PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX = NULL; +PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX = NULL; +PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv = NULL; +PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX = NULL; + +PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX = NULL; +PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX = NULL; +PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX = NULL; +PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX = NULL; + PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX = NULL; +PFNGLDEFORMSGIXPROC __glewDeformSGIX = NULL; +PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX = NULL; + +PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX = NULL; +PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX = NULL; + PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX = NULL; PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX = NULL; @@ -2898,6 +3378,16 @@ PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX = NULL; PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX = NULL; +PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX = NULL; +PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX = NULL; + +PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX = NULL; +PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX = NULL; +PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX = NULL; +PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX = NULL; +PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX = NULL; +PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX = NULL; + PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI = NULL; PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI = NULL; PFNGLCOLORTABLESGIPROC __glewColorTableSGI = NULL; @@ -2906,6 +3396,14 @@ PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI = NULL; PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI = NULL; PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI = NULL; +PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI = NULL; +PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI = NULL; +PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI = NULL; + PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX = NULL; PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN = NULL; @@ -2970,10 +3468,6 @@ PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN = NULL; PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN = NULL; -#endif /* !WIN32 || !GLEW_MX */ - -#if !defined(GLEW_MX) - GLboolean __GLEW_VERSION_1_1 = GL_FALSE; GLboolean __GLEW_VERSION_1_2 = GL_FALSE; GLboolean __GLEW_VERSION_1_2_1 = GL_FALSE; @@ -2992,15 +3486,23 @@ GLboolean __GLEW_VERSION_4_2 = GL_FALSE; GLboolean __GLEW_VERSION_4_3 = GL_FALSE; GLboolean __GLEW_VERSION_4_4 = GL_FALSE; GLboolean __GLEW_VERSION_4_5 = GL_FALSE; +GLboolean __GLEW_VERSION_4_6 = GL_FALSE; GLboolean __GLEW_3DFX_multisample = GL_FALSE; GLboolean __GLEW_3DFX_tbuffer = GL_FALSE; GLboolean __GLEW_3DFX_texture_compression_FXT1 = GL_FALSE; GLboolean __GLEW_AMD_blend_minmax_factor = GL_FALSE; +GLboolean __GLEW_AMD_compressed_3DC_texture = GL_FALSE; +GLboolean __GLEW_AMD_compressed_ATC_texture = GL_FALSE; GLboolean __GLEW_AMD_conservative_depth = GL_FALSE; GLboolean __GLEW_AMD_debug_output = GL_FALSE; GLboolean __GLEW_AMD_depth_clamp_separate = GL_FALSE; GLboolean __GLEW_AMD_draw_buffers_blend = GL_FALSE; +GLboolean __GLEW_AMD_framebuffer_multisample_advanced = GL_FALSE; +GLboolean __GLEW_AMD_framebuffer_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_gcn_shader = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_half_float = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_half_float_fetch = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_int16 = GL_FALSE; GLboolean __GLEW_AMD_gpu_shader_int64 = GL_FALSE; GLboolean __GLEW_AMD_interleaved_elements = GL_FALSE; GLboolean __GLEW_AMD_multi_draw_indirect = GL_FALSE; @@ -3008,21 +3510,27 @@ GLboolean __GLEW_AMD_name_gen_delete = GL_FALSE; GLboolean __GLEW_AMD_occlusion_query_event = GL_FALSE; GLboolean __GLEW_AMD_performance_monitor = GL_FALSE; GLboolean __GLEW_AMD_pinned_memory = GL_FALSE; +GLboolean __GLEW_AMD_program_binary_Z400 = GL_FALSE; GLboolean __GLEW_AMD_query_buffer_object = GL_FALSE; GLboolean __GLEW_AMD_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_seamless_cubemap_per_texture = GL_FALSE; GLboolean __GLEW_AMD_shader_atomic_counter_ops = GL_FALSE; +GLboolean __GLEW_AMD_shader_ballot = GL_FALSE; +GLboolean __GLEW_AMD_shader_explicit_vertex_parameter = GL_FALSE; +GLboolean __GLEW_AMD_shader_image_load_store_lod = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_export = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_value_export = GL_FALSE; GLboolean __GLEW_AMD_shader_trinary_minmax = GL_FALSE; GLboolean __GLEW_AMD_sparse_texture = GL_FALSE; GLboolean __GLEW_AMD_stencil_operation_extended = GL_FALSE; +GLboolean __GLEW_AMD_texture_gather_bias_lod = GL_FALSE; GLboolean __GLEW_AMD_texture_texture4 = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback3_lines_triangles = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback4 = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_layer = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_tessellator = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_viewport_index = GL_FALSE; +GLboolean __GLEW_ANDROID_extension_pack_es31a = GL_FALSE; GLboolean __GLEW_ANGLE_depth_texture = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_blit = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_multisample = GL_FALSE; @@ -3037,15 +3545,24 @@ GLboolean __GLEW_ANGLE_timer_query = GL_FALSE; GLboolean __GLEW_ANGLE_translated_shader_source = GL_FALSE; GLboolean __GLEW_APPLE_aux_depth_stencil = GL_FALSE; GLboolean __GLEW_APPLE_client_storage = GL_FALSE; +GLboolean __GLEW_APPLE_clip_distance = GL_FALSE; +GLboolean __GLEW_APPLE_color_buffer_packed_float = GL_FALSE; +GLboolean __GLEW_APPLE_copy_texture_levels = GL_FALSE; GLboolean __GLEW_APPLE_element_array = GL_FALSE; GLboolean __GLEW_APPLE_fence = GL_FALSE; GLboolean __GLEW_APPLE_float_pixels = GL_FALSE; GLboolean __GLEW_APPLE_flush_buffer_range = GL_FALSE; +GLboolean __GLEW_APPLE_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_APPLE_object_purgeable = GL_FALSE; GLboolean __GLEW_APPLE_pixel_buffer = GL_FALSE; GLboolean __GLEW_APPLE_rgb_422 = GL_FALSE; GLboolean __GLEW_APPLE_row_bytes = GL_FALSE; GLboolean __GLEW_APPLE_specular_vector = GL_FALSE; +GLboolean __GLEW_APPLE_sync = GL_FALSE; +GLboolean __GLEW_APPLE_texture_2D_limited_npot = GL_FALSE; +GLboolean __GLEW_APPLE_texture_format_BGRA8888 = GL_FALSE; +GLboolean __GLEW_APPLE_texture_max_level = GL_FALSE; +GLboolean __GLEW_APPLE_texture_packed_float = GL_FALSE; GLboolean __GLEW_APPLE_texture_range = GL_FALSE; GLboolean __GLEW_APPLE_transform_hint = GL_FALSE; GLboolean __GLEW_APPLE_vertex_array_object = GL_FALSE; @@ -3101,6 +3618,7 @@ GLboolean __GLEW_ARB_framebuffer_sRGB = GL_FALSE; GLboolean __GLEW_ARB_geometry_shader4 = GL_FALSE; GLboolean __GLEW_ARB_get_program_binary = GL_FALSE; GLboolean __GLEW_ARB_get_texture_sub_image = GL_FALSE; +GLboolean __GLEW_ARB_gl_spirv = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader5 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_fp64 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_int64 = GL_FALSE; @@ -3126,6 +3644,7 @@ GLboolean __GLEW_ARB_pipeline_statistics_query = GL_FALSE; GLboolean __GLEW_ARB_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_point_parameters = GL_FALSE; GLboolean __GLEW_ARB_point_sprite = GL_FALSE; +GLboolean __GLEW_ARB_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_ARB_post_depth_coverage = GL_FALSE; GLboolean __GLEW_ARB_program_interface_query = GL_FALSE; GLboolean __GLEW_ARB_provoking_vertex = GL_FALSE; @@ -3167,6 +3686,7 @@ GLboolean __GLEW_ARB_sparse_buffer = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture2 = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture_clamp = GL_FALSE; +GLboolean __GLEW_ARB_spirv_extensions = GL_FALSE; GLboolean __GLEW_ARB_stencil_texturing = GL_FALSE; GLboolean __GLEW_ARB_sync = GL_FALSE; GLboolean __GLEW_ARB_tessellation_shader = GL_FALSE; @@ -3184,6 +3704,7 @@ GLboolean __GLEW_ARB_texture_env_add = GL_FALSE; GLboolean __GLEW_ARB_texture_env_combine = GL_FALSE; GLboolean __GLEW_ARB_texture_env_crossbar = GL_FALSE; GLboolean __GLEW_ARB_texture_env_dot3 = GL_FALSE; +GLboolean __GLEW_ARB_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_ARB_texture_filter_minmax = GL_FALSE; GLboolean __GLEW_ARB_texture_float = GL_FALSE; GLboolean __GLEW_ARB_texture_gather = GL_FALSE; @@ -3220,6 +3741,12 @@ GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev = GL_FALSE; GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev = GL_FALSE; GLboolean __GLEW_ARB_viewport_array = GL_FALSE; GLboolean __GLEW_ARB_window_pos = GL_FALSE; +GLboolean __GLEW_ARM_mali_program_binary = GL_FALSE; +GLboolean __GLEW_ARM_mali_shader_binary = GL_FALSE; +GLboolean __GLEW_ARM_rgba8 = GL_FALSE; +GLboolean __GLEW_ARM_shader_framebuffer_fetch = GL_FALSE; +GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil = GL_FALSE; +GLboolean __GLEW_ARM_texture_unnormalized_coordinates = GL_FALSE; GLboolean __GLEW_ATIX_point_sprites = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_combine3 = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_route = GL_FALSE; @@ -3241,51 +3768,97 @@ GLboolean __GLEW_ATI_texture_mirror_once = GL_FALSE; GLboolean __GLEW_ATI_vertex_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_attrib_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_streams = GL_FALSE; +GLboolean __GLEW_DMP_program_binary = GL_FALSE; +GLboolean __GLEW_DMP_shader_binary = GL_FALSE; GLboolean __GLEW_EXT_422_pixels = GL_FALSE; GLboolean __GLEW_EXT_Cg_shader = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_array = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_external_wrap_modes = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_storage = GL_FALSE; +GLboolean __GLEW_EXT_EGL_sync = GL_FALSE; +GLboolean __GLEW_EXT_YUV_target = GL_FALSE; GLboolean __GLEW_EXT_abgr = GL_FALSE; +GLboolean __GLEW_EXT_base_instance = GL_FALSE; GLboolean __GLEW_EXT_bgra = GL_FALSE; GLboolean __GLEW_EXT_bindable_uniform = GL_FALSE; GLboolean __GLEW_EXT_blend_color = GL_FALSE; GLboolean __GLEW_EXT_blend_equation_separate = GL_FALSE; +GLboolean __GLEW_EXT_blend_func_extended = GL_FALSE; GLboolean __GLEW_EXT_blend_func_separate = GL_FALSE; GLboolean __GLEW_EXT_blend_logic_op = GL_FALSE; GLboolean __GLEW_EXT_blend_minmax = GL_FALSE; GLboolean __GLEW_EXT_blend_subtract = GL_FALSE; +GLboolean __GLEW_EXT_buffer_storage = GL_FALSE; +GLboolean __GLEW_EXT_clear_texture = GL_FALSE; +GLboolean __GLEW_EXT_clip_control = GL_FALSE; +GLboolean __GLEW_EXT_clip_cull_distance = GL_FALSE; GLboolean __GLEW_EXT_clip_volume_hint = GL_FALSE; GLboolean __GLEW_EXT_cmyka = GL_FALSE; +GLboolean __GLEW_EXT_color_buffer_float = GL_FALSE; +GLboolean __GLEW_EXT_color_buffer_half_float = GL_FALSE; GLboolean __GLEW_EXT_color_subtable = GL_FALSE; GLboolean __GLEW_EXT_compiled_vertex_array = GL_FALSE; +GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture = GL_FALSE; +GLboolean __GLEW_EXT_conservative_depth = GL_FALSE; GLboolean __GLEW_EXT_convolution = GL_FALSE; GLboolean __GLEW_EXT_coordinate_frame = GL_FALSE; +GLboolean __GLEW_EXT_copy_image = GL_FALSE; GLboolean __GLEW_EXT_copy_texture = GL_FALSE; GLboolean __GLEW_EXT_cull_vertex = GL_FALSE; GLboolean __GLEW_EXT_debug_label = GL_FALSE; GLboolean __GLEW_EXT_debug_marker = GL_FALSE; GLboolean __GLEW_EXT_depth_bounds_test = GL_FALSE; +GLboolean __GLEW_EXT_depth_clamp = GL_FALSE; GLboolean __GLEW_EXT_direct_state_access = GL_FALSE; +GLboolean __GLEW_EXT_discard_framebuffer = GL_FALSE; +GLboolean __GLEW_EXT_disjoint_timer_query = GL_FALSE; +GLboolean __GLEW_EXT_draw_buffers = GL_FALSE; GLboolean __GLEW_EXT_draw_buffers2 = GL_FALSE; +GLboolean __GLEW_EXT_draw_buffers_indexed = GL_FALSE; +GLboolean __GLEW_EXT_draw_elements_base_vertex = GL_FALSE; GLboolean __GLEW_EXT_draw_instanced = GL_FALSE; GLboolean __GLEW_EXT_draw_range_elements = GL_FALSE; +GLboolean __GLEW_EXT_draw_transform_feedback = GL_FALSE; +GLboolean __GLEW_EXT_external_buffer = GL_FALSE; +GLboolean __GLEW_EXT_float_blend = GL_FALSE; GLboolean __GLEW_EXT_fog_coord = GL_FALSE; +GLboolean __GLEW_EXT_frag_depth = GL_FALSE; GLboolean __GLEW_EXT_fragment_lighting = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_blit = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_object = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_geometry_point_size = GL_FALSE; +GLboolean __GLEW_EXT_geometry_shader = GL_FALSE; GLboolean __GLEW_EXT_geometry_shader4 = GL_FALSE; GLboolean __GLEW_EXT_gpu_program_parameters = GL_FALSE; GLboolean __GLEW_EXT_gpu_shader4 = GL_FALSE; +GLboolean __GLEW_EXT_gpu_shader5 = GL_FALSE; GLboolean __GLEW_EXT_histogram = GL_FALSE; GLboolean __GLEW_EXT_index_array_formats = GL_FALSE; GLboolean __GLEW_EXT_index_func = GL_FALSE; GLboolean __GLEW_EXT_index_material = GL_FALSE; GLboolean __GLEW_EXT_index_texture = GL_FALSE; +GLboolean __GLEW_EXT_instanced_arrays = GL_FALSE; GLboolean __GLEW_EXT_light_texture = GL_FALSE; +GLboolean __GLEW_EXT_map_buffer_range = GL_FALSE; +GLboolean __GLEW_EXT_memory_object = GL_FALSE; +GLboolean __GLEW_EXT_memory_object_fd = GL_FALSE; +GLboolean __GLEW_EXT_memory_object_win32 = GL_FALSE; GLboolean __GLEW_EXT_misc_attribute = GL_FALSE; GLboolean __GLEW_EXT_multi_draw_arrays = GL_FALSE; +GLboolean __GLEW_EXT_multi_draw_indirect = GL_FALSE; +GLboolean __GLEW_EXT_multiple_textures = GL_FALSE; GLboolean __GLEW_EXT_multisample = GL_FALSE; +GLboolean __GLEW_EXT_multisample_compatibility = GL_FALSE; +GLboolean __GLEW_EXT_multisampled_render_to_texture = GL_FALSE; +GLboolean __GLEW_EXT_multisampled_render_to_texture2 = GL_FALSE; +GLboolean __GLEW_EXT_multiview_draw_buffers = GL_FALSE; +GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader = GL_FALSE; +GLboolean __GLEW_EXT_multiview_texture_multisample = GL_FALSE; +GLboolean __GLEW_EXT_multiview_timer_query = GL_FALSE; +GLboolean __GLEW_EXT_occlusion_query_boolean = GL_FALSE; GLboolean __GLEW_EXT_packed_depth_stencil = GL_FALSE; GLboolean __GLEW_EXT_packed_float = GL_FALSE; GLboolean __GLEW_EXT_packed_pixels = GL_FALSE; @@ -3297,32 +3870,64 @@ GLboolean __GLEW_EXT_point_parameters = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_EXT_post_depth_coverage = GL_FALSE; +GLboolean __GLEW_EXT_primitive_bounding_box = GL_FALSE; +GLboolean __GLEW_EXT_protected_textures = GL_FALSE; GLboolean __GLEW_EXT_provoking_vertex = GL_FALSE; +GLboolean __GLEW_EXT_pvrtc_sRGB = GL_FALSE; GLboolean __GLEW_EXT_raster_multisample = GL_FALSE; +GLboolean __GLEW_EXT_read_format_bgra = GL_FALSE; +GLboolean __GLEW_EXT_render_snorm = GL_FALSE; GLboolean __GLEW_EXT_rescale_normal = GL_FALSE; +GLboolean __GLEW_EXT_robustness = GL_FALSE; +GLboolean __GLEW_EXT_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_sRGB_write_control = GL_FALSE; GLboolean __GLEW_EXT_scene_marker = GL_FALSE; GLboolean __GLEW_EXT_secondary_color = GL_FALSE; +GLboolean __GLEW_EXT_semaphore = GL_FALSE; +GLboolean __GLEW_EXT_semaphore_fd = GL_FALSE; +GLboolean __GLEW_EXT_semaphore_win32 = GL_FALSE; GLboolean __GLEW_EXT_separate_shader_objects = GL_FALSE; GLboolean __GLEW_EXT_separate_specular_color = GL_FALSE; +GLboolean __GLEW_EXT_shader_framebuffer_fetch = GL_FALSE; +GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent = GL_FALSE; +GLboolean __GLEW_EXT_shader_group_vote = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_formatted = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_store = GL_FALSE; +GLboolean __GLEW_EXT_shader_implicit_conversions = GL_FALSE; GLboolean __GLEW_EXT_shader_integer_mix = GL_FALSE; +GLboolean __GLEW_EXT_shader_io_blocks = GL_FALSE; +GLboolean __GLEW_EXT_shader_non_constant_global_initializers = GL_FALSE; +GLboolean __GLEW_EXT_shader_pixel_local_storage = GL_FALSE; +GLboolean __GLEW_EXT_shader_pixel_local_storage2 = GL_FALSE; +GLboolean __GLEW_EXT_shader_texture_lod = GL_FALSE; GLboolean __GLEW_EXT_shadow_funcs = GL_FALSE; +GLboolean __GLEW_EXT_shadow_samplers = GL_FALSE; GLboolean __GLEW_EXT_shared_texture_palette = GL_FALSE; +GLboolean __GLEW_EXT_sparse_texture = GL_FALSE; GLboolean __GLEW_EXT_sparse_texture2 = GL_FALSE; +GLboolean __GLEW_EXT_static_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_stencil_clear_tag = GL_FALSE; GLboolean __GLEW_EXT_stencil_two_side = GL_FALSE; GLboolean __GLEW_EXT_stencil_wrap = GL_FALSE; GLboolean __GLEW_EXT_subtexture = GL_FALSE; +GLboolean __GLEW_EXT_tessellation_point_size = GL_FALSE; +GLboolean __GLEW_EXT_tessellation_shader = GL_FALSE; GLboolean __GLEW_EXT_texture = GL_FALSE; GLboolean __GLEW_EXT_texture3D = GL_FALSE; GLboolean __GLEW_EXT_texture_array = GL_FALSE; +GLboolean __GLEW_EXT_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_EXT_texture_buffer = GL_FALSE; GLboolean __GLEW_EXT_texture_buffer_object = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_astc_decode_mode = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_bptc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_dxt1 = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_latc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_rgtc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_s3tc = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_s3tc_srgb = GL_FALSE; GLboolean __GLEW_EXT_texture_cube_map = GL_FALSE; +GLboolean __GLEW_EXT_texture_cube_map_array = GL_FALSE; GLboolean __GLEW_EXT_texture_edge_clamp = GL_FALSE; GLboolean __GLEW_EXT_texture_env = GL_FALSE; GLboolean __GLEW_EXT_texture_env_add = GL_FALSE; @@ -3330,25 +3935,42 @@ GLboolean __GLEW_EXT_texture_env_combine = GL_FALSE; GLboolean __GLEW_EXT_texture_env_dot3 = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_minmax = GL_FALSE; +GLboolean __GLEW_EXT_texture_format_BGRA8888 = GL_FALSE; +GLboolean __GLEW_EXT_texture_format_sRGB_override = GL_FALSE; GLboolean __GLEW_EXT_texture_integer = GL_FALSE; GLboolean __GLEW_EXT_texture_lod_bias = GL_FALSE; GLboolean __GLEW_EXT_texture_mirror_clamp = GL_FALSE; +GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge = GL_FALSE; +GLboolean __GLEW_EXT_texture_norm16 = GL_FALSE; GLboolean __GLEW_EXT_texture_object = GL_FALSE; GLboolean __GLEW_EXT_texture_perturb_normal = GL_FALSE; +GLboolean __GLEW_EXT_texture_query_lod = GL_FALSE; GLboolean __GLEW_EXT_texture_rectangle = GL_FALSE; +GLboolean __GLEW_EXT_texture_rg = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_texture_sRGB_R8 = GL_FALSE; +GLboolean __GLEW_EXT_texture_sRGB_RG8 = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB_decode = GL_FALSE; +GLboolean __GLEW_EXT_texture_shadow_lod = GL_FALSE; GLboolean __GLEW_EXT_texture_shared_exponent = GL_FALSE; GLboolean __GLEW_EXT_texture_snorm = GL_FALSE; +GLboolean __GLEW_EXT_texture_storage = GL_FALSE; GLboolean __GLEW_EXT_texture_swizzle = GL_FALSE; +GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV = GL_FALSE; +GLboolean __GLEW_EXT_texture_view = GL_FALSE; GLboolean __GLEW_EXT_timer_query = GL_FALSE; GLboolean __GLEW_EXT_transform_feedback = GL_FALSE; +GLboolean __GLEW_EXT_unpack_subimage = GL_FALSE; GLboolean __GLEW_EXT_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_vertex_array_bgra = GL_FALSE; +GLboolean __GLEW_EXT_vertex_array_setXXX = GL_FALSE; GLboolean __GLEW_EXT_vertex_attrib_64bit = GL_FALSE; GLboolean __GLEW_EXT_vertex_shader = GL_FALSE; GLboolean __GLEW_EXT_vertex_weighting = GL_FALSE; +GLboolean __GLEW_EXT_win32_keyed_mutex = GL_FALSE; +GLboolean __GLEW_EXT_window_rectangles = GL_FALSE; GLboolean __GLEW_EXT_x11_sync_object = GL_FALSE; +GLboolean __GLEW_FJ_shader_binary_GCCSO = GL_FALSE; GLboolean __GLEW_GREMEDY_frame_terminator = GL_FALSE; GLboolean __GLEW_GREMEDY_string_marker = GL_FALSE; GLboolean __GLEW_HP_convolution_border_modes = GL_FALSE; @@ -3361,50 +3983,92 @@ GLboolean __GLEW_IBM_rasterpos_clip = GL_FALSE; GLboolean __GLEW_IBM_static_data = GL_FALSE; GLboolean __GLEW_IBM_texture_mirrored_repeat = GL_FALSE; GLboolean __GLEW_IBM_vertex_array_lists = GL_FALSE; +GLboolean __GLEW_IMG_bindless_texture = GL_FALSE; +GLboolean __GLEW_IMG_framebuffer_downsample = GL_FALSE; +GLboolean __GLEW_IMG_multisampled_render_to_texture = GL_FALSE; +GLboolean __GLEW_IMG_program_binary = GL_FALSE; +GLboolean __GLEW_IMG_read_format = GL_FALSE; +GLboolean __GLEW_IMG_shader_binary = GL_FALSE; +GLboolean __GLEW_IMG_texture_compression_pvrtc = GL_FALSE; +GLboolean __GLEW_IMG_texture_compression_pvrtc2 = GL_FALSE; +GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function = GL_FALSE; +GLboolean __GLEW_IMG_texture_filter_cubic = GL_FALSE; GLboolean __GLEW_INGR_color_clamp = GL_FALSE; GLboolean __GLEW_INGR_interlace_read = GL_FALSE; +GLboolean __GLEW_INTEL_blackhole_render = GL_FALSE; +GLboolean __GLEW_INTEL_conservative_rasterization = GL_FALSE; GLboolean __GLEW_INTEL_fragment_shader_ordering = GL_FALSE; GLboolean __GLEW_INTEL_framebuffer_CMAA = GL_FALSE; GLboolean __GLEW_INTEL_map_texture = GL_FALSE; GLboolean __GLEW_INTEL_parallel_arrays = GL_FALSE; GLboolean __GLEW_INTEL_performance_query = GL_FALSE; +GLboolean __GLEW_INTEL_shader_integer_functions2 = GL_FALSE; GLboolean __GLEW_INTEL_texture_scissor = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced_coherent = GL_FALSE; GLboolean __GLEW_KHR_context_flush_control = GL_FALSE; GLboolean __GLEW_KHR_debug = GL_FALSE; GLboolean __GLEW_KHR_no_error = GL_FALSE; +GLboolean __GLEW_KHR_parallel_shader_compile = GL_FALSE; GLboolean __GLEW_KHR_robust_buffer_access_behavior = GL_FALSE; GLboolean __GLEW_KHR_robustness = GL_FALSE; +GLboolean __GLEW_KHR_shader_subgroup = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_hdr = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_ldr = GL_FALSE; +GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d = GL_FALSE; GLboolean __GLEW_KTX_buffer_region = GL_FALSE; GLboolean __GLEW_MESAX_texture_stack = GL_FALSE; +GLboolean __GLEW_MESA_framebuffer_flip_y = GL_FALSE; GLboolean __GLEW_MESA_pack_invert = GL_FALSE; +GLboolean __GLEW_MESA_program_binary_formats = GL_FALSE; GLboolean __GLEW_MESA_resize_buffers = GL_FALSE; +GLboolean __GLEW_MESA_shader_integer_functions = GL_FALSE; +GLboolean __GLEW_MESA_tile_raster_order = GL_FALSE; GLboolean __GLEW_MESA_window_pos = GL_FALSE; GLboolean __GLEW_MESA_ycbcr_texture = GL_FALSE; +GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers = GL_FALSE; GLboolean __GLEW_NVX_conditional_render = GL_FALSE; GLboolean __GLEW_NVX_gpu_memory_info = GL_FALSE; +GLboolean __GLEW_NVX_gpu_multicast2 = GL_FALSE; +GLboolean __GLEW_NVX_linked_gpu_multicast = GL_FALSE; +GLboolean __GLEW_NVX_progress_fence = GL_FALSE; +GLboolean __GLEW_NV_3dvision_settings = GL_FALSE; +GLboolean __GLEW_NV_EGL_stream_consumer_external = GL_FALSE; +GLboolean __GLEW_NV_alpha_to_coverage_dither_control = GL_FALSE; +GLboolean __GLEW_NV_bgr = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect_count = GL_FALSE; GLboolean __GLEW_NV_bindless_texture = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced_coherent = GL_FALSE; +GLboolean __GLEW_NV_blend_minmax_factor = GL_FALSE; GLboolean __GLEW_NV_blend_square = GL_FALSE; +GLboolean __GLEW_NV_clip_space_w_scaling = GL_FALSE; +GLboolean __GLEW_NV_command_list = GL_FALSE; GLboolean __GLEW_NV_compute_program5 = GL_FALSE; +GLboolean __GLEW_NV_compute_shader_derivatives = GL_FALSE; GLboolean __GLEW_NV_conditional_render = GL_FALSE; GLboolean __GLEW_NV_conservative_raster = GL_FALSE; GLboolean __GLEW_NV_conservative_raster_dilate = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_pre_snap = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_underestimation = GL_FALSE; +GLboolean __GLEW_NV_copy_buffer = GL_FALSE; GLboolean __GLEW_NV_copy_depth_to_color = GL_FALSE; GLboolean __GLEW_NV_copy_image = GL_FALSE; GLboolean __GLEW_NV_deep_texture3D = GL_FALSE; GLboolean __GLEW_NV_depth_buffer_float = GL_FALSE; GLboolean __GLEW_NV_depth_clamp = GL_FALSE; +GLboolean __GLEW_NV_depth_nonlinear = GL_FALSE; GLboolean __GLEW_NV_depth_range_unclamped = GL_FALSE; +GLboolean __GLEW_NV_draw_buffers = GL_FALSE; +GLboolean __GLEW_NV_draw_instanced = GL_FALSE; GLboolean __GLEW_NV_draw_texture = GL_FALSE; +GLboolean __GLEW_NV_draw_vulkan_image = GL_FALSE; GLboolean __GLEW_NV_evaluators = GL_FALSE; +GLboolean __GLEW_NV_explicit_attrib_location = GL_FALSE; GLboolean __GLEW_NV_explicit_multisample = GL_FALSE; +GLboolean __GLEW_NV_fbo_color_attachments = GL_FALSE; GLboolean __GLEW_NV_fence = GL_FALSE; GLboolean __GLEW_NV_fill_rectangle = GL_FALSE; GLboolean __GLEW_NV_float_buffer = GL_FALSE; @@ -3414,53 +4078,94 @@ GLboolean __GLEW_NV_fragment_program = GL_FALSE; GLboolean __GLEW_NV_fragment_program2 = GL_FALSE; GLboolean __GLEW_NV_fragment_program4 = GL_FALSE; GLboolean __GLEW_NV_fragment_program_option = GL_FALSE; +GLboolean __GLEW_NV_fragment_shader_barycentric = GL_FALSE; GLboolean __GLEW_NV_fragment_shader_interlock = GL_FALSE; +GLboolean __GLEW_NV_framebuffer_blit = GL_FALSE; GLboolean __GLEW_NV_framebuffer_mixed_samples = GL_FALSE; +GLboolean __GLEW_NV_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_NV_framebuffer_multisample_coverage = GL_FALSE; +GLboolean __GLEW_NV_generate_mipmap_sRGB = GL_FALSE; GLboolean __GLEW_NV_geometry_program4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader_passthrough = GL_FALSE; +GLboolean __GLEW_NV_gpu_multicast = GL_FALSE; GLboolean __GLEW_NV_gpu_program4 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5_mem_extended = GL_FALSE; GLboolean __GLEW_NV_gpu_program_fp64 = GL_FALSE; GLboolean __GLEW_NV_gpu_shader5 = GL_FALSE; GLboolean __GLEW_NV_half_float = GL_FALSE; +GLboolean __GLEW_NV_image_formats = GL_FALSE; +GLboolean __GLEW_NV_instanced_arrays = GL_FALSE; GLboolean __GLEW_NV_internalformat_sample_query = GL_FALSE; GLboolean __GLEW_NV_light_max_exponent = GL_FALSE; +GLboolean __GLEW_NV_memory_attachment = GL_FALSE; +GLboolean __GLEW_NV_mesh_shader = GL_FALSE; GLboolean __GLEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLEW_NV_multisample_filter_hint = GL_FALSE; +GLboolean __GLEW_NV_non_square_matrices = GL_FALSE; GLboolean __GLEW_NV_occlusion_query = GL_FALSE; +GLboolean __GLEW_NV_pack_subimage = GL_FALSE; GLboolean __GLEW_NV_packed_depth_stencil = GL_FALSE; +GLboolean __GLEW_NV_packed_float = GL_FALSE; +GLboolean __GLEW_NV_packed_float_linear = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object2 = GL_FALSE; GLboolean __GLEW_NV_path_rendering = GL_FALSE; GLboolean __GLEW_NV_path_rendering_shared_edge = GL_FALSE; +GLboolean __GLEW_NV_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_NV_pixel_data_range = GL_FALSE; +GLboolean __GLEW_NV_platform_binary = GL_FALSE; GLboolean __GLEW_NV_point_sprite = GL_FALSE; +GLboolean __GLEW_NV_polygon_mode = GL_FALSE; GLboolean __GLEW_NV_present_video = GL_FALSE; GLboolean __GLEW_NV_primitive_restart = GL_FALSE; +GLboolean __GLEW_NV_query_resource_tag = GL_FALSE; +GLboolean __GLEW_NV_read_buffer = GL_FALSE; +GLboolean __GLEW_NV_read_buffer_front = GL_FALSE; +GLboolean __GLEW_NV_read_depth = GL_FALSE; +GLboolean __GLEW_NV_read_depth_stencil = GL_FALSE; +GLboolean __GLEW_NV_read_stencil = GL_FALSE; GLboolean __GLEW_NV_register_combiners = GL_FALSE; GLboolean __GLEW_NV_register_combiners2 = GL_FALSE; +GLboolean __GLEW_NV_representative_fragment_test = GL_FALSE; +GLboolean __GLEW_NV_robustness_video_memory_purge = GL_FALSE; +GLboolean __GLEW_NV_sRGB_formats = GL_FALSE; GLboolean __GLEW_NV_sample_locations = GL_FALSE; GLboolean __GLEW_NV_sample_mask_override_coverage = GL_FALSE; +GLboolean __GLEW_NV_scissor_exclusive = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_counters = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_float = GL_FALSE; +GLboolean __GLEW_NV_shader_atomic_float64 = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_fp16_vector = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_int64 = GL_FALSE; GLboolean __GLEW_NV_shader_buffer_load = GL_FALSE; +GLboolean __GLEW_NV_shader_noperspective_interpolation = GL_FALSE; GLboolean __GLEW_NV_shader_storage_buffer_object = GL_FALSE; +GLboolean __GLEW_NV_shader_subgroup_partitioned = GL_FALSE; +GLboolean __GLEW_NV_shader_texture_footprint = GL_FALSE; GLboolean __GLEW_NV_shader_thread_group = GL_FALSE; GLboolean __GLEW_NV_shader_thread_shuffle = GL_FALSE; +GLboolean __GLEW_NV_shading_rate_image = GL_FALSE; +GLboolean __GLEW_NV_shadow_samplers_array = GL_FALSE; +GLboolean __GLEW_NV_shadow_samplers_cube = GL_FALSE; +GLboolean __GLEW_NV_stereo_view_rendering = GL_FALSE; GLboolean __GLEW_NV_tessellation_program5 = GL_FALSE; GLboolean __GLEW_NV_texgen_emboss = GL_FALSE; GLboolean __GLEW_NV_texgen_reflection = GL_FALSE; +GLboolean __GLEW_NV_texture_array = GL_FALSE; GLboolean __GLEW_NV_texture_barrier = GL_FALSE; +GLboolean __GLEW_NV_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_latc = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_s3tc = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_s3tc_update = GL_FALSE; GLboolean __GLEW_NV_texture_compression_vtc = GL_FALSE; GLboolean __GLEW_NV_texture_env_combine4 = GL_FALSE; GLboolean __GLEW_NV_texture_expand_normal = GL_FALSE; GLboolean __GLEW_NV_texture_multisample = GL_FALSE; +GLboolean __GLEW_NV_texture_npot_2D_mipmap = GL_FALSE; GLboolean __GLEW_NV_texture_rectangle = GL_FALSE; +GLboolean __GLEW_NV_texture_rectangle_compressed = GL_FALSE; GLboolean __GLEW_NV_texture_shader = GL_FALSE; GLboolean __GLEW_NV_texture_shader2 = GL_FALSE; GLboolean __GLEW_NV_texture_shader3 = GL_FALSE; @@ -3468,6 +4173,7 @@ GLboolean __GLEW_NV_transform_feedback = GL_FALSE; GLboolean __GLEW_NV_transform_feedback2 = GL_FALSE; GLboolean __GLEW_NV_uniform_buffer_unified_memory = GL_FALSE; GLboolean __GLEW_NV_vdpau_interop = GL_FALSE; +GLboolean __GLEW_NV_vdpau_interop2 = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range2 = GL_FALSE; GLboolean __GLEW_NV_vertex_attrib_integer_64bit = GL_FALSE; @@ -3479,18 +4185,93 @@ GLboolean __GLEW_NV_vertex_program2_option = GL_FALSE; GLboolean __GLEW_NV_vertex_program3 = GL_FALSE; GLboolean __GLEW_NV_vertex_program4 = GL_FALSE; GLboolean __GLEW_NV_video_capture = GL_FALSE; +GLboolean __GLEW_NV_viewport_array = GL_FALSE; GLboolean __GLEW_NV_viewport_array2 = GL_FALSE; +GLboolean __GLEW_NV_viewport_swizzle = GL_FALSE; +GLboolean __GLEW_OES_EGL_image = GL_FALSE; +GLboolean __GLEW_OES_EGL_image_external = GL_FALSE; +GLboolean __GLEW_OES_EGL_image_external_essl3 = GL_FALSE; +GLboolean __GLEW_OES_blend_equation_separate = GL_FALSE; +GLboolean __GLEW_OES_blend_func_separate = GL_FALSE; +GLboolean __GLEW_OES_blend_subtract = GL_FALSE; GLboolean __GLEW_OES_byte_coordinates = GL_FALSE; +GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture = GL_FALSE; GLboolean __GLEW_OES_compressed_paletted_texture = GL_FALSE; +GLboolean __GLEW_OES_copy_image = GL_FALSE; +GLboolean __GLEW_OES_depth24 = GL_FALSE; +GLboolean __GLEW_OES_depth32 = GL_FALSE; +GLboolean __GLEW_OES_depth_texture = GL_FALSE; +GLboolean __GLEW_OES_depth_texture_cube_map = GL_FALSE; +GLboolean __GLEW_OES_draw_buffers_indexed = GL_FALSE; +GLboolean __GLEW_OES_draw_texture = GL_FALSE; +GLboolean __GLEW_OES_element_index_uint = GL_FALSE; +GLboolean __GLEW_OES_extended_matrix_palette = GL_FALSE; +GLboolean __GLEW_OES_fbo_render_mipmap = GL_FALSE; +GLboolean __GLEW_OES_fragment_precision_high = GL_FALSE; +GLboolean __GLEW_OES_framebuffer_object = GL_FALSE; +GLboolean __GLEW_OES_geometry_point_size = GL_FALSE; +GLboolean __GLEW_OES_geometry_shader = GL_FALSE; +GLboolean __GLEW_OES_get_program_binary = GL_FALSE; +GLboolean __GLEW_OES_gpu_shader5 = GL_FALSE; +GLboolean __GLEW_OES_mapbuffer = GL_FALSE; +GLboolean __GLEW_OES_matrix_get = GL_FALSE; +GLboolean __GLEW_OES_matrix_palette = GL_FALSE; +GLboolean __GLEW_OES_packed_depth_stencil = GL_FALSE; +GLboolean __GLEW_OES_point_size_array = GL_FALSE; +GLboolean __GLEW_OES_point_sprite = GL_FALSE; GLboolean __GLEW_OES_read_format = GL_FALSE; +GLboolean __GLEW_OES_required_internalformat = GL_FALSE; +GLboolean __GLEW_OES_rgb8_rgba8 = GL_FALSE; +GLboolean __GLEW_OES_sample_shading = GL_FALSE; +GLboolean __GLEW_OES_sample_variables = GL_FALSE; +GLboolean __GLEW_OES_shader_image_atomic = GL_FALSE; +GLboolean __GLEW_OES_shader_io_blocks = GL_FALSE; +GLboolean __GLEW_OES_shader_multisample_interpolation = GL_FALSE; GLboolean __GLEW_OES_single_precision = GL_FALSE; +GLboolean __GLEW_OES_standard_derivatives = GL_FALSE; +GLboolean __GLEW_OES_stencil1 = GL_FALSE; +GLboolean __GLEW_OES_stencil4 = GL_FALSE; +GLboolean __GLEW_OES_stencil8 = GL_FALSE; +GLboolean __GLEW_OES_surfaceless_context = GL_FALSE; +GLboolean __GLEW_OES_tessellation_point_size = GL_FALSE; +GLboolean __GLEW_OES_tessellation_shader = GL_FALSE; +GLboolean __GLEW_OES_texture_3D = GL_FALSE; +GLboolean __GLEW_OES_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_OES_texture_buffer = GL_FALSE; +GLboolean __GLEW_OES_texture_compression_astc = GL_FALSE; +GLboolean __GLEW_OES_texture_cube_map = GL_FALSE; +GLboolean __GLEW_OES_texture_cube_map_array = GL_FALSE; +GLboolean __GLEW_OES_texture_env_crossbar = GL_FALSE; +GLboolean __GLEW_OES_texture_mirrored_repeat = GL_FALSE; +GLboolean __GLEW_OES_texture_npot = GL_FALSE; +GLboolean __GLEW_OES_texture_stencil8 = GL_FALSE; +GLboolean __GLEW_OES_texture_storage_multisample_2d_array = GL_FALSE; +GLboolean __GLEW_OES_texture_view = GL_FALSE; +GLboolean __GLEW_OES_vertex_array_object = GL_FALSE; +GLboolean __GLEW_OES_vertex_half_float = GL_FALSE; +GLboolean __GLEW_OES_vertex_type_10_10_10_2 = GL_FALSE; GLboolean __GLEW_OML_interlace = GL_FALSE; GLboolean __GLEW_OML_resample = GL_FALSE; GLboolean __GLEW_OML_subsample = GL_FALSE; GLboolean __GLEW_OVR_multiview = GL_FALSE; GLboolean __GLEW_OVR_multiview2 = GL_FALSE; +GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture = GL_FALSE; GLboolean __GLEW_PGI_misc_hints = GL_FALSE; GLboolean __GLEW_PGI_vertex_hints = GL_FALSE; +GLboolean __GLEW_QCOM_YUV_texture_gather = GL_FALSE; +GLboolean __GLEW_QCOM_alpha_test = GL_FALSE; +GLboolean __GLEW_QCOM_binning_control = GL_FALSE; +GLboolean __GLEW_QCOM_driver_control = GL_FALSE; +GLboolean __GLEW_QCOM_extended_get = GL_FALSE; +GLboolean __GLEW_QCOM_extended_get2 = GL_FALSE; +GLboolean __GLEW_QCOM_framebuffer_foveated = GL_FALSE; +GLboolean __GLEW_QCOM_perfmon_global_mode = GL_FALSE; +GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent = GL_FALSE; +GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate = GL_FALSE; +GLboolean __GLEW_QCOM_texture_foveated = GL_FALSE; +GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout = GL_FALSE; +GLboolean __GLEW_QCOM_tiled_rendering = GL_FALSE; +GLboolean __GLEW_QCOM_writeonly_rendering = GL_FALSE; GLboolean __GLEW_REGAL_ES1_0_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_ES1_1_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_enable = GL_FALSE; @@ -3500,13 +4281,17 @@ GLboolean __GLEW_REGAL_log = GL_FALSE; GLboolean __GLEW_REGAL_proc_address = GL_FALSE; GLboolean __GLEW_REND_screen_coordinates = GL_FALSE; GLboolean __GLEW_S3_s3tc = GL_FALSE; +GLboolean __GLEW_SGIS_clip_band_hint = GL_FALSE; GLboolean __GLEW_SGIS_color_range = GL_FALSE; GLboolean __GLEW_SGIS_detail_texture = GL_FALSE; GLboolean __GLEW_SGIS_fog_function = GL_FALSE; GLboolean __GLEW_SGIS_generate_mipmap = GL_FALSE; +GLboolean __GLEW_SGIS_line_texgen = GL_FALSE; GLboolean __GLEW_SGIS_multisample = GL_FALSE; +GLboolean __GLEW_SGIS_multitexture = GL_FALSE; GLboolean __GLEW_SGIS_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIS_point_line_texgen = GL_FALSE; +GLboolean __GLEW_SGIS_shared_multisample = GL_FALSE; GLboolean __GLEW_SGIS_sharpen_texture = GL_FALSE; GLboolean __GLEW_SGIS_texture4D = GL_FALSE; GLboolean __GLEW_SGIS_texture_border_clamp = GL_FALSE; @@ -3517,37 +4302,90 @@ GLboolean __GLEW_SGIS_texture_select = GL_FALSE; GLboolean __GLEW_SGIX_async = GL_FALSE; GLboolean __GLEW_SGIX_async_histogram = GL_FALSE; GLboolean __GLEW_SGIX_async_pixel = GL_FALSE; +GLboolean __GLEW_SGIX_bali_g_instruments = GL_FALSE; +GLboolean __GLEW_SGIX_bali_r_instruments = GL_FALSE; +GLboolean __GLEW_SGIX_bali_timer_instruments = GL_FALSE; GLboolean __GLEW_SGIX_blend_alpha_minmax = GL_FALSE; +GLboolean __GLEW_SGIX_blend_cadd = GL_FALSE; +GLboolean __GLEW_SGIX_blend_cmultiply = GL_FALSE; +GLboolean __GLEW_SGIX_calligraphic_fragment = GL_FALSE; GLboolean __GLEW_SGIX_clipmap = GL_FALSE; +GLboolean __GLEW_SGIX_color_matrix_accuracy = GL_FALSE; +GLboolean __GLEW_SGIX_color_table_index_mode = GL_FALSE; +GLboolean __GLEW_SGIX_complex_polar = GL_FALSE; GLboolean __GLEW_SGIX_convolution_accuracy = GL_FALSE; +GLboolean __GLEW_SGIX_cube_map = GL_FALSE; +GLboolean __GLEW_SGIX_cylinder_texgen = GL_FALSE; +GLboolean __GLEW_SGIX_datapipe = GL_FALSE; +GLboolean __GLEW_SGIX_decimation = GL_FALSE; +GLboolean __GLEW_SGIX_depth_pass_instrument = GL_FALSE; GLboolean __GLEW_SGIX_depth_texture = GL_FALSE; +GLboolean __GLEW_SGIX_dvc = GL_FALSE; GLboolean __GLEW_SGIX_flush_raster = GL_FALSE; +GLboolean __GLEW_SGIX_fog_blend = GL_FALSE; +GLboolean __GLEW_SGIX_fog_factor_to_alpha = GL_FALSE; +GLboolean __GLEW_SGIX_fog_layers = GL_FALSE; GLboolean __GLEW_SGIX_fog_offset = GL_FALSE; +GLboolean __GLEW_SGIX_fog_patchy = GL_FALSE; +GLboolean __GLEW_SGIX_fog_scale = GL_FALSE; GLboolean __GLEW_SGIX_fog_texture = GL_FALSE; +GLboolean __GLEW_SGIX_fragment_lighting_space = GL_FALSE; GLboolean __GLEW_SGIX_fragment_specular_lighting = GL_FALSE; +GLboolean __GLEW_SGIX_fragments_instrument = GL_FALSE; GLboolean __GLEW_SGIX_framezoom = GL_FALSE; +GLboolean __GLEW_SGIX_icc_texture = GL_FALSE; +GLboolean __GLEW_SGIX_igloo_interface = GL_FALSE; +GLboolean __GLEW_SGIX_image_compression = GL_FALSE; +GLboolean __GLEW_SGIX_impact_pixel_texture = GL_FALSE; +GLboolean __GLEW_SGIX_instrument_error = GL_FALSE; GLboolean __GLEW_SGIX_interlace = GL_FALSE; GLboolean __GLEW_SGIX_ir_instrument1 = GL_FALSE; +GLboolean __GLEW_SGIX_line_quality_hint = GL_FALSE; GLboolean __GLEW_SGIX_list_priority = GL_FALSE; +GLboolean __GLEW_SGIX_mpeg1 = GL_FALSE; +GLboolean __GLEW_SGIX_mpeg2 = GL_FALSE; +GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex = GL_FALSE; +GLboolean __GLEW_SGIX_nurbs_eval = GL_FALSE; +GLboolean __GLEW_SGIX_occlusion_instrument = GL_FALSE; +GLboolean __GLEW_SGIX_packed_6bytes = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture_bits = GL_FALSE; +GLboolean __GLEW_SGIX_pixel_texture_lod = GL_FALSE; +GLboolean __GLEW_SGIX_pixel_tiles = GL_FALSE; +GLboolean __GLEW_SGIX_polynomial_ffd = GL_FALSE; +GLboolean __GLEW_SGIX_quad_mesh = GL_FALSE; GLboolean __GLEW_SGIX_reference_plane = GL_FALSE; GLboolean __GLEW_SGIX_resample = GL_FALSE; +GLboolean __GLEW_SGIX_scalebias_hint = GL_FALSE; GLboolean __GLEW_SGIX_shadow = GL_FALSE; GLboolean __GLEW_SGIX_shadow_ambient = GL_FALSE; +GLboolean __GLEW_SGIX_slim = GL_FALSE; +GLboolean __GLEW_SGIX_spotlight_cutoff = GL_FALSE; GLboolean __GLEW_SGIX_sprite = GL_FALSE; +GLboolean __GLEW_SGIX_subdiv_patch = GL_FALSE; +GLboolean __GLEW_SGIX_subsample = GL_FALSE; GLboolean __GLEW_SGIX_tag_sample_buffer = GL_FALSE; GLboolean __GLEW_SGIX_texture_add_env = GL_FALSE; GLboolean __GLEW_SGIX_texture_coordinate_clamp = GL_FALSE; GLboolean __GLEW_SGIX_texture_lod_bias = GL_FALSE; +GLboolean __GLEW_SGIX_texture_mipmap_anisotropic = GL_FALSE; GLboolean __GLEW_SGIX_texture_multi_buffer = GL_FALSE; +GLboolean __GLEW_SGIX_texture_phase = GL_FALSE; GLboolean __GLEW_SGIX_texture_range = GL_FALSE; GLboolean __GLEW_SGIX_texture_scale_bias = GL_FALSE; +GLboolean __GLEW_SGIX_texture_supersample = GL_FALSE; +GLboolean __GLEW_SGIX_vector_ops = GL_FALSE; +GLboolean __GLEW_SGIX_vertex_array_object = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip_hint = GL_FALSE; GLboolean __GLEW_SGIX_ycrcb = GL_FALSE; +GLboolean __GLEW_SGIX_ycrcb_subsample = GL_FALSE; +GLboolean __GLEW_SGIX_ycrcba = GL_FALSE; GLboolean __GLEW_SGI_color_matrix = GL_FALSE; GLboolean __GLEW_SGI_color_table = GL_FALSE; +GLboolean __GLEW_SGI_complex = GL_FALSE; +GLboolean __GLEW_SGI_complex_type = GL_FALSE; +GLboolean __GLEW_SGI_fft = GL_FALSE; GLboolean __GLEW_SGI_texture_color_table = GL_FALSE; GLboolean __GLEW_SUNX_constant_data = GL_FALSE; GLboolean __GLEW_SUN_convolution_border_modes = GL_FALSE; @@ -3557,15 +4395,6008 @@ GLboolean __GLEW_SUN_read_video_pixels = GL_FALSE; GLboolean __GLEW_SUN_slice_accum = GL_FALSE; GLboolean __GLEW_SUN_triangle_list = GL_FALSE; GLboolean __GLEW_SUN_vertex = GL_FALSE; +GLboolean __GLEW_VIV_shader_binary = GL_FALSE; GLboolean __GLEW_WIN_phong_shading = GL_FALSE; +GLboolean __GLEW_WIN_scene_markerXXX = GL_FALSE; GLboolean __GLEW_WIN_specular_fog = GL_FALSE; GLboolean __GLEW_WIN_swap_hint = GL_FALSE; -#endif /* !GLEW_MX */ +static const char * _glewExtensionLookup[] = { +#ifdef GL_3DFX_multisample + "GL_3DFX_multisample", +#endif +#ifdef GL_3DFX_tbuffer + "GL_3DFX_tbuffer", +#endif +#ifdef GL_3DFX_texture_compression_FXT1 + "GL_3DFX_texture_compression_FXT1", +#endif +#ifdef GL_AMD_blend_minmax_factor + "GL_AMD_blend_minmax_factor", +#endif +#ifdef GL_AMD_compressed_3DC_texture + "GL_AMD_compressed_3DC_texture", +#endif +#ifdef GL_AMD_compressed_ATC_texture + "GL_AMD_compressed_ATC_texture", +#endif +#ifdef GL_AMD_conservative_depth + "GL_AMD_conservative_depth", +#endif +#ifdef GL_AMD_debug_output + "GL_AMD_debug_output", +#endif +#ifdef GL_AMD_depth_clamp_separate + "GL_AMD_depth_clamp_separate", +#endif +#ifdef GL_AMD_draw_buffers_blend + "GL_AMD_draw_buffers_blend", +#endif +#ifdef GL_AMD_framebuffer_multisample_advanced + "GL_AMD_framebuffer_multisample_advanced", +#endif +#ifdef GL_AMD_framebuffer_sample_positions + "GL_AMD_framebuffer_sample_positions", +#endif +#ifdef GL_AMD_gcn_shader + "GL_AMD_gcn_shader", +#endif +#ifdef GL_AMD_gpu_shader_half_float + "GL_AMD_gpu_shader_half_float", +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + "GL_AMD_gpu_shader_half_float_fetch", +#endif +#ifdef GL_AMD_gpu_shader_int16 + "GL_AMD_gpu_shader_int16", +#endif +#ifdef GL_AMD_gpu_shader_int64 + "GL_AMD_gpu_shader_int64", +#endif +#ifdef GL_AMD_interleaved_elements + "GL_AMD_interleaved_elements", +#endif +#ifdef GL_AMD_multi_draw_indirect + "GL_AMD_multi_draw_indirect", +#endif +#ifdef GL_AMD_name_gen_delete + "GL_AMD_name_gen_delete", +#endif +#ifdef GL_AMD_occlusion_query_event + "GL_AMD_occlusion_query_event", +#endif +#ifdef GL_AMD_performance_monitor + "GL_AMD_performance_monitor", +#endif +#ifdef GL_AMD_pinned_memory + "GL_AMD_pinned_memory", +#endif +#ifdef GL_AMD_program_binary_Z400 + "GL_AMD_program_binary_Z400", +#endif +#ifdef GL_AMD_query_buffer_object + "GL_AMD_query_buffer_object", +#endif +#ifdef GL_AMD_sample_positions + "GL_AMD_sample_positions", +#endif +#ifdef GL_AMD_seamless_cubemap_per_texture + "GL_AMD_seamless_cubemap_per_texture", +#endif +#ifdef GL_AMD_shader_atomic_counter_ops + "GL_AMD_shader_atomic_counter_ops", +#endif +#ifdef GL_AMD_shader_ballot + "GL_AMD_shader_ballot", +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + "GL_AMD_shader_explicit_vertex_parameter", +#endif +#ifdef GL_AMD_shader_image_load_store_lod + "GL_AMD_shader_image_load_store_lod", +#endif +#ifdef GL_AMD_shader_stencil_export + "GL_AMD_shader_stencil_export", +#endif +#ifdef GL_AMD_shader_stencil_value_export + "GL_AMD_shader_stencil_value_export", +#endif +#ifdef GL_AMD_shader_trinary_minmax + "GL_AMD_shader_trinary_minmax", +#endif +#ifdef GL_AMD_sparse_texture + "GL_AMD_sparse_texture", +#endif +#ifdef GL_AMD_stencil_operation_extended + "GL_AMD_stencil_operation_extended", +#endif +#ifdef GL_AMD_texture_gather_bias_lod + "GL_AMD_texture_gather_bias_lod", +#endif +#ifdef GL_AMD_texture_texture4 + "GL_AMD_texture_texture4", +#endif +#ifdef GL_AMD_transform_feedback3_lines_triangles + "GL_AMD_transform_feedback3_lines_triangles", +#endif +#ifdef GL_AMD_transform_feedback4 + "GL_AMD_transform_feedback4", +#endif +#ifdef GL_AMD_vertex_shader_layer + "GL_AMD_vertex_shader_layer", +#endif +#ifdef GL_AMD_vertex_shader_tessellator + "GL_AMD_vertex_shader_tessellator", +#endif +#ifdef GL_AMD_vertex_shader_viewport_index + "GL_AMD_vertex_shader_viewport_index", +#endif +#ifdef GL_ANDROID_extension_pack_es31a + "GL_ANDROID_extension_pack_es31a", +#endif +#ifdef GL_ANGLE_depth_texture + "GL_ANGLE_depth_texture", +#endif +#ifdef GL_ANGLE_framebuffer_blit + "GL_ANGLE_framebuffer_blit", +#endif +#ifdef GL_ANGLE_framebuffer_multisample + "GL_ANGLE_framebuffer_multisample", +#endif +#ifdef GL_ANGLE_instanced_arrays + "GL_ANGLE_instanced_arrays", +#endif +#ifdef GL_ANGLE_pack_reverse_row_order + "GL_ANGLE_pack_reverse_row_order", +#endif +#ifdef GL_ANGLE_program_binary + "GL_ANGLE_program_binary", +#endif +#ifdef GL_ANGLE_texture_compression_dxt1 + "GL_ANGLE_texture_compression_dxt1", +#endif +#ifdef GL_ANGLE_texture_compression_dxt3 + "GL_ANGLE_texture_compression_dxt3", +#endif +#ifdef GL_ANGLE_texture_compression_dxt5 + "GL_ANGLE_texture_compression_dxt5", +#endif +#ifdef GL_ANGLE_texture_usage + "GL_ANGLE_texture_usage", +#endif +#ifdef GL_ANGLE_timer_query + "GL_ANGLE_timer_query", +#endif +#ifdef GL_ANGLE_translated_shader_source + "GL_ANGLE_translated_shader_source", +#endif +#ifdef GL_APPLE_aux_depth_stencil + "GL_APPLE_aux_depth_stencil", +#endif +#ifdef GL_APPLE_client_storage + "GL_APPLE_client_storage", +#endif +#ifdef GL_APPLE_clip_distance + "GL_APPLE_clip_distance", +#endif +#ifdef GL_APPLE_color_buffer_packed_float + "GL_APPLE_color_buffer_packed_float", +#endif +#ifdef GL_APPLE_copy_texture_levels + "GL_APPLE_copy_texture_levels", +#endif +#ifdef GL_APPLE_element_array + "GL_APPLE_element_array", +#endif +#ifdef GL_APPLE_fence + "GL_APPLE_fence", +#endif +#ifdef GL_APPLE_float_pixels + "GL_APPLE_float_pixels", +#endif +#ifdef GL_APPLE_flush_buffer_range + "GL_APPLE_flush_buffer_range", +#endif +#ifdef GL_APPLE_framebuffer_multisample + "GL_APPLE_framebuffer_multisample", +#endif +#ifdef GL_APPLE_object_purgeable + "GL_APPLE_object_purgeable", +#endif +#ifdef GL_APPLE_pixel_buffer + "GL_APPLE_pixel_buffer", +#endif +#ifdef GL_APPLE_rgb_422 + "GL_APPLE_rgb_422", +#endif +#ifdef GL_APPLE_row_bytes + "GL_APPLE_row_bytes", +#endif +#ifdef GL_APPLE_specular_vector + "GL_APPLE_specular_vector", +#endif +#ifdef GL_APPLE_sync + "GL_APPLE_sync", +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + "GL_APPLE_texture_2D_limited_npot", +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + "GL_APPLE_texture_format_BGRA8888", +#endif +#ifdef GL_APPLE_texture_max_level + "GL_APPLE_texture_max_level", +#endif +#ifdef GL_APPLE_texture_packed_float + "GL_APPLE_texture_packed_float", +#endif +#ifdef GL_APPLE_texture_range + "GL_APPLE_texture_range", +#endif +#ifdef GL_APPLE_transform_hint + "GL_APPLE_transform_hint", +#endif +#ifdef GL_APPLE_vertex_array_object + "GL_APPLE_vertex_array_object", +#endif +#ifdef GL_APPLE_vertex_array_range + "GL_APPLE_vertex_array_range", +#endif +#ifdef GL_APPLE_vertex_program_evaluators + "GL_APPLE_vertex_program_evaluators", +#endif +#ifdef GL_APPLE_ycbcr_422 + "GL_APPLE_ycbcr_422", +#endif +#ifdef GL_ARB_ES2_compatibility + "GL_ARB_ES2_compatibility", +#endif +#ifdef GL_ARB_ES3_1_compatibility + "GL_ARB_ES3_1_compatibility", +#endif +#ifdef GL_ARB_ES3_2_compatibility + "GL_ARB_ES3_2_compatibility", +#endif +#ifdef GL_ARB_ES3_compatibility + "GL_ARB_ES3_compatibility", +#endif +#ifdef GL_ARB_arrays_of_arrays + "GL_ARB_arrays_of_arrays", +#endif +#ifdef GL_ARB_base_instance + "GL_ARB_base_instance", +#endif +#ifdef GL_ARB_bindless_texture + "GL_ARB_bindless_texture", +#endif +#ifdef GL_ARB_blend_func_extended + "GL_ARB_blend_func_extended", +#endif +#ifdef GL_ARB_buffer_storage + "GL_ARB_buffer_storage", +#endif +#ifdef GL_ARB_cl_event + "GL_ARB_cl_event", +#endif +#ifdef GL_ARB_clear_buffer_object + "GL_ARB_clear_buffer_object", +#endif +#ifdef GL_ARB_clear_texture + "GL_ARB_clear_texture", +#endif +#ifdef GL_ARB_clip_control + "GL_ARB_clip_control", +#endif +#ifdef GL_ARB_color_buffer_float + "GL_ARB_color_buffer_float", +#endif +#ifdef GL_ARB_compatibility + "GL_ARB_compatibility", +#endif +#ifdef GL_ARB_compressed_texture_pixel_storage + "GL_ARB_compressed_texture_pixel_storage", +#endif +#ifdef GL_ARB_compute_shader + "GL_ARB_compute_shader", +#endif +#ifdef GL_ARB_compute_variable_group_size + "GL_ARB_compute_variable_group_size", +#endif +#ifdef GL_ARB_conditional_render_inverted + "GL_ARB_conditional_render_inverted", +#endif +#ifdef GL_ARB_conservative_depth + "GL_ARB_conservative_depth", +#endif +#ifdef GL_ARB_copy_buffer + "GL_ARB_copy_buffer", +#endif +#ifdef GL_ARB_copy_image + "GL_ARB_copy_image", +#endif +#ifdef GL_ARB_cull_distance + "GL_ARB_cull_distance", +#endif +#ifdef GL_ARB_debug_output + "GL_ARB_debug_output", +#endif +#ifdef GL_ARB_depth_buffer_float + "GL_ARB_depth_buffer_float", +#endif +#ifdef GL_ARB_depth_clamp + "GL_ARB_depth_clamp", +#endif +#ifdef GL_ARB_depth_texture + "GL_ARB_depth_texture", +#endif +#ifdef GL_ARB_derivative_control + "GL_ARB_derivative_control", +#endif +#ifdef GL_ARB_direct_state_access + "GL_ARB_direct_state_access", +#endif +#ifdef GL_ARB_draw_buffers + "GL_ARB_draw_buffers", +#endif +#ifdef GL_ARB_draw_buffers_blend + "GL_ARB_draw_buffers_blend", +#endif +#ifdef GL_ARB_draw_elements_base_vertex + "GL_ARB_draw_elements_base_vertex", +#endif +#ifdef GL_ARB_draw_indirect + "GL_ARB_draw_indirect", +#endif +#ifdef GL_ARB_draw_instanced + "GL_ARB_draw_instanced", +#endif +#ifdef GL_ARB_enhanced_layouts + "GL_ARB_enhanced_layouts", +#endif +#ifdef GL_ARB_explicit_attrib_location + "GL_ARB_explicit_attrib_location", +#endif +#ifdef GL_ARB_explicit_uniform_location + "GL_ARB_explicit_uniform_location", +#endif +#ifdef GL_ARB_fragment_coord_conventions + "GL_ARB_fragment_coord_conventions", +#endif +#ifdef GL_ARB_fragment_layer_viewport + "GL_ARB_fragment_layer_viewport", +#endif +#ifdef GL_ARB_fragment_program + "GL_ARB_fragment_program", +#endif +#ifdef GL_ARB_fragment_program_shadow + "GL_ARB_fragment_program_shadow", +#endif +#ifdef GL_ARB_fragment_shader + "GL_ARB_fragment_shader", +#endif +#ifdef GL_ARB_fragment_shader_interlock + "GL_ARB_fragment_shader_interlock", +#endif +#ifdef GL_ARB_framebuffer_no_attachments + "GL_ARB_framebuffer_no_attachments", +#endif +#ifdef GL_ARB_framebuffer_object + "GL_ARB_framebuffer_object", +#endif +#ifdef GL_ARB_framebuffer_sRGB + "GL_ARB_framebuffer_sRGB", +#endif +#ifdef GL_ARB_geometry_shader4 + "GL_ARB_geometry_shader4", +#endif +#ifdef GL_ARB_get_program_binary + "GL_ARB_get_program_binary", +#endif +#ifdef GL_ARB_get_texture_sub_image + "GL_ARB_get_texture_sub_image", +#endif +#ifdef GL_ARB_gl_spirv + "GL_ARB_gl_spirv", +#endif +#ifdef GL_ARB_gpu_shader5 + "GL_ARB_gpu_shader5", +#endif +#ifdef GL_ARB_gpu_shader_fp64 + "GL_ARB_gpu_shader_fp64", +#endif +#ifdef GL_ARB_gpu_shader_int64 + "GL_ARB_gpu_shader_int64", +#endif +#ifdef GL_ARB_half_float_pixel + "GL_ARB_half_float_pixel", +#endif +#ifdef GL_ARB_half_float_vertex + "GL_ARB_half_float_vertex", +#endif +#ifdef GL_ARB_imaging + "GL_ARB_imaging", +#endif +#ifdef GL_ARB_indirect_parameters + "GL_ARB_indirect_parameters", +#endif +#ifdef GL_ARB_instanced_arrays + "GL_ARB_instanced_arrays", +#endif +#ifdef GL_ARB_internalformat_query + "GL_ARB_internalformat_query", +#endif +#ifdef GL_ARB_internalformat_query2 + "GL_ARB_internalformat_query2", +#endif +#ifdef GL_ARB_invalidate_subdata + "GL_ARB_invalidate_subdata", +#endif +#ifdef GL_ARB_map_buffer_alignment + "GL_ARB_map_buffer_alignment", +#endif +#ifdef GL_ARB_map_buffer_range + "GL_ARB_map_buffer_range", +#endif +#ifdef GL_ARB_matrix_palette + "GL_ARB_matrix_palette", +#endif +#ifdef GL_ARB_multi_bind + "GL_ARB_multi_bind", +#endif +#ifdef GL_ARB_multi_draw_indirect + "GL_ARB_multi_draw_indirect", +#endif +#ifdef GL_ARB_multisample + "GL_ARB_multisample", +#endif +#ifdef GL_ARB_multitexture + "GL_ARB_multitexture", +#endif +#ifdef GL_ARB_occlusion_query + "GL_ARB_occlusion_query", +#endif +#ifdef GL_ARB_occlusion_query2 + "GL_ARB_occlusion_query2", +#endif +#ifdef GL_ARB_parallel_shader_compile + "GL_ARB_parallel_shader_compile", +#endif +#ifdef GL_ARB_pipeline_statistics_query + "GL_ARB_pipeline_statistics_query", +#endif +#ifdef GL_ARB_pixel_buffer_object + "GL_ARB_pixel_buffer_object", +#endif +#ifdef GL_ARB_point_parameters + "GL_ARB_point_parameters", +#endif +#ifdef GL_ARB_point_sprite + "GL_ARB_point_sprite", +#endif +#ifdef GL_ARB_polygon_offset_clamp + "GL_ARB_polygon_offset_clamp", +#endif +#ifdef GL_ARB_post_depth_coverage + "GL_ARB_post_depth_coverage", +#endif +#ifdef GL_ARB_program_interface_query + "GL_ARB_program_interface_query", +#endif +#ifdef GL_ARB_provoking_vertex + "GL_ARB_provoking_vertex", +#endif +#ifdef GL_ARB_query_buffer_object + "GL_ARB_query_buffer_object", +#endif +#ifdef GL_ARB_robust_buffer_access_behavior + "GL_ARB_robust_buffer_access_behavior", +#endif +#ifdef GL_ARB_robustness + "GL_ARB_robustness", +#endif +#ifdef GL_ARB_robustness_application_isolation + "GL_ARB_robustness_application_isolation", +#endif +#ifdef GL_ARB_robustness_share_group_isolation + "GL_ARB_robustness_share_group_isolation", +#endif +#ifdef GL_ARB_sample_locations + "GL_ARB_sample_locations", +#endif +#ifdef GL_ARB_sample_shading + "GL_ARB_sample_shading", +#endif +#ifdef GL_ARB_sampler_objects + "GL_ARB_sampler_objects", +#endif +#ifdef GL_ARB_seamless_cube_map + "GL_ARB_seamless_cube_map", +#endif +#ifdef GL_ARB_seamless_cubemap_per_texture + "GL_ARB_seamless_cubemap_per_texture", +#endif +#ifdef GL_ARB_separate_shader_objects + "GL_ARB_separate_shader_objects", +#endif +#ifdef GL_ARB_shader_atomic_counter_ops + "GL_ARB_shader_atomic_counter_ops", +#endif +#ifdef GL_ARB_shader_atomic_counters + "GL_ARB_shader_atomic_counters", +#endif +#ifdef GL_ARB_shader_ballot + "GL_ARB_shader_ballot", +#endif +#ifdef GL_ARB_shader_bit_encoding + "GL_ARB_shader_bit_encoding", +#endif +#ifdef GL_ARB_shader_clock + "GL_ARB_shader_clock", +#endif +#ifdef GL_ARB_shader_draw_parameters + "GL_ARB_shader_draw_parameters", +#endif +#ifdef GL_ARB_shader_group_vote + "GL_ARB_shader_group_vote", +#endif +#ifdef GL_ARB_shader_image_load_store + "GL_ARB_shader_image_load_store", +#endif +#ifdef GL_ARB_shader_image_size + "GL_ARB_shader_image_size", +#endif +#ifdef GL_ARB_shader_objects + "GL_ARB_shader_objects", +#endif +#ifdef GL_ARB_shader_precision + "GL_ARB_shader_precision", +#endif +#ifdef GL_ARB_shader_stencil_export + "GL_ARB_shader_stencil_export", +#endif +#ifdef GL_ARB_shader_storage_buffer_object + "GL_ARB_shader_storage_buffer_object", +#endif +#ifdef GL_ARB_shader_subroutine + "GL_ARB_shader_subroutine", +#endif +#ifdef GL_ARB_shader_texture_image_samples + "GL_ARB_shader_texture_image_samples", +#endif +#ifdef GL_ARB_shader_texture_lod + "GL_ARB_shader_texture_lod", +#endif +#ifdef GL_ARB_shader_viewport_layer_array + "GL_ARB_shader_viewport_layer_array", +#endif +#ifdef GL_ARB_shading_language_100 + "GL_ARB_shading_language_100", +#endif +#ifdef GL_ARB_shading_language_420pack + "GL_ARB_shading_language_420pack", +#endif +#ifdef GL_ARB_shading_language_include + "GL_ARB_shading_language_include", +#endif +#ifdef GL_ARB_shading_language_packing + "GL_ARB_shading_language_packing", +#endif +#ifdef GL_ARB_shadow + "GL_ARB_shadow", +#endif +#ifdef GL_ARB_shadow_ambient + "GL_ARB_shadow_ambient", +#endif +#ifdef GL_ARB_sparse_buffer + "GL_ARB_sparse_buffer", +#endif +#ifdef GL_ARB_sparse_texture + "GL_ARB_sparse_texture", +#endif +#ifdef GL_ARB_sparse_texture2 + "GL_ARB_sparse_texture2", +#endif +#ifdef GL_ARB_sparse_texture_clamp + "GL_ARB_sparse_texture_clamp", +#endif +#ifdef GL_ARB_spirv_extensions + "GL_ARB_spirv_extensions", +#endif +#ifdef GL_ARB_stencil_texturing + "GL_ARB_stencil_texturing", +#endif +#ifdef GL_ARB_sync + "GL_ARB_sync", +#endif +#ifdef GL_ARB_tessellation_shader + "GL_ARB_tessellation_shader", +#endif +#ifdef GL_ARB_texture_barrier + "GL_ARB_texture_barrier", +#endif +#ifdef GL_ARB_texture_border_clamp + "GL_ARB_texture_border_clamp", +#endif +#ifdef GL_ARB_texture_buffer_object + "GL_ARB_texture_buffer_object", +#endif +#ifdef GL_ARB_texture_buffer_object_rgb32 + "GL_ARB_texture_buffer_object_rgb32", +#endif +#ifdef GL_ARB_texture_buffer_range + "GL_ARB_texture_buffer_range", +#endif +#ifdef GL_ARB_texture_compression + "GL_ARB_texture_compression", +#endif +#ifdef GL_ARB_texture_compression_bptc + "GL_ARB_texture_compression_bptc", +#endif +#ifdef GL_ARB_texture_compression_rgtc + "GL_ARB_texture_compression_rgtc", +#endif +#ifdef GL_ARB_texture_cube_map + "GL_ARB_texture_cube_map", +#endif +#ifdef GL_ARB_texture_cube_map_array + "GL_ARB_texture_cube_map_array", +#endif +#ifdef GL_ARB_texture_env_add + "GL_ARB_texture_env_add", +#endif +#ifdef GL_ARB_texture_env_combine + "GL_ARB_texture_env_combine", +#endif +#ifdef GL_ARB_texture_env_crossbar + "GL_ARB_texture_env_crossbar", +#endif +#ifdef GL_ARB_texture_env_dot3 + "GL_ARB_texture_env_dot3", +#endif +#ifdef GL_ARB_texture_filter_anisotropic + "GL_ARB_texture_filter_anisotropic", +#endif +#ifdef GL_ARB_texture_filter_minmax + "GL_ARB_texture_filter_minmax", +#endif +#ifdef GL_ARB_texture_float + "GL_ARB_texture_float", +#endif +#ifdef GL_ARB_texture_gather + "GL_ARB_texture_gather", +#endif +#ifdef GL_ARB_texture_mirror_clamp_to_edge + "GL_ARB_texture_mirror_clamp_to_edge", +#endif +#ifdef GL_ARB_texture_mirrored_repeat + "GL_ARB_texture_mirrored_repeat", +#endif +#ifdef GL_ARB_texture_multisample + "GL_ARB_texture_multisample", +#endif +#ifdef GL_ARB_texture_non_power_of_two + "GL_ARB_texture_non_power_of_two", +#endif +#ifdef GL_ARB_texture_query_levels + "GL_ARB_texture_query_levels", +#endif +#ifdef GL_ARB_texture_query_lod + "GL_ARB_texture_query_lod", +#endif +#ifdef GL_ARB_texture_rectangle + "GL_ARB_texture_rectangle", +#endif +#ifdef GL_ARB_texture_rg + "GL_ARB_texture_rg", +#endif +#ifdef GL_ARB_texture_rgb10_a2ui + "GL_ARB_texture_rgb10_a2ui", +#endif +#ifdef GL_ARB_texture_stencil8 + "GL_ARB_texture_stencil8", +#endif +#ifdef GL_ARB_texture_storage + "GL_ARB_texture_storage", +#endif +#ifdef GL_ARB_texture_storage_multisample + "GL_ARB_texture_storage_multisample", +#endif +#ifdef GL_ARB_texture_swizzle + "GL_ARB_texture_swizzle", +#endif +#ifdef GL_ARB_texture_view + "GL_ARB_texture_view", +#endif +#ifdef GL_ARB_timer_query + "GL_ARB_timer_query", +#endif +#ifdef GL_ARB_transform_feedback2 + "GL_ARB_transform_feedback2", +#endif +#ifdef GL_ARB_transform_feedback3 + "GL_ARB_transform_feedback3", +#endif +#ifdef GL_ARB_transform_feedback_instanced + "GL_ARB_transform_feedback_instanced", +#endif +#ifdef GL_ARB_transform_feedback_overflow_query + "GL_ARB_transform_feedback_overflow_query", +#endif +#ifdef GL_ARB_transpose_matrix + "GL_ARB_transpose_matrix", +#endif +#ifdef GL_ARB_uniform_buffer_object + "GL_ARB_uniform_buffer_object", +#endif +#ifdef GL_ARB_vertex_array_bgra + "GL_ARB_vertex_array_bgra", +#endif +#ifdef GL_ARB_vertex_array_object + "GL_ARB_vertex_array_object", +#endif +#ifdef GL_ARB_vertex_attrib_64bit + "GL_ARB_vertex_attrib_64bit", +#endif +#ifdef GL_ARB_vertex_attrib_binding + "GL_ARB_vertex_attrib_binding", +#endif +#ifdef GL_ARB_vertex_blend + "GL_ARB_vertex_blend", +#endif +#ifdef GL_ARB_vertex_buffer_object + "GL_ARB_vertex_buffer_object", +#endif +#ifdef GL_ARB_vertex_program + "GL_ARB_vertex_program", +#endif +#ifdef GL_ARB_vertex_shader + "GL_ARB_vertex_shader", +#endif +#ifdef GL_ARB_vertex_type_10f_11f_11f_rev + "GL_ARB_vertex_type_10f_11f_11f_rev", +#endif +#ifdef GL_ARB_vertex_type_2_10_10_10_rev + "GL_ARB_vertex_type_2_10_10_10_rev", +#endif +#ifdef GL_ARB_viewport_array + "GL_ARB_viewport_array", +#endif +#ifdef GL_ARB_window_pos + "GL_ARB_window_pos", +#endif +#ifdef GL_ARM_mali_program_binary + "GL_ARM_mali_program_binary", +#endif +#ifdef GL_ARM_mali_shader_binary + "GL_ARM_mali_shader_binary", +#endif +#ifdef GL_ARM_rgba8 + "GL_ARM_rgba8", +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + "GL_ARM_shader_framebuffer_fetch", +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + "GL_ARM_shader_framebuffer_fetch_depth_stencil", +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + "GL_ARM_texture_unnormalized_coordinates", +#endif +#ifdef GL_ATIX_point_sprites + "GL_ATIX_point_sprites", +#endif +#ifdef GL_ATIX_texture_env_combine3 + "GL_ATIX_texture_env_combine3", +#endif +#ifdef GL_ATIX_texture_env_route + "GL_ATIX_texture_env_route", +#endif +#ifdef GL_ATIX_vertex_shader_output_point_size + "GL_ATIX_vertex_shader_output_point_size", +#endif +#ifdef GL_ATI_draw_buffers + "GL_ATI_draw_buffers", +#endif +#ifdef GL_ATI_element_array + "GL_ATI_element_array", +#endif +#ifdef GL_ATI_envmap_bumpmap + "GL_ATI_envmap_bumpmap", +#endif +#ifdef GL_ATI_fragment_shader + "GL_ATI_fragment_shader", +#endif +#ifdef GL_ATI_map_object_buffer + "GL_ATI_map_object_buffer", +#endif +#ifdef GL_ATI_meminfo + "GL_ATI_meminfo", +#endif +#ifdef GL_ATI_pn_triangles + "GL_ATI_pn_triangles", +#endif +#ifdef GL_ATI_separate_stencil + "GL_ATI_separate_stencil", +#endif +#ifdef GL_ATI_shader_texture_lod + "GL_ATI_shader_texture_lod", +#endif +#ifdef GL_ATI_text_fragment_shader + "GL_ATI_text_fragment_shader", +#endif +#ifdef GL_ATI_texture_compression_3dc + "GL_ATI_texture_compression_3dc", +#endif +#ifdef GL_ATI_texture_env_combine3 + "GL_ATI_texture_env_combine3", +#endif +#ifdef GL_ATI_texture_float + "GL_ATI_texture_float", +#endif +#ifdef GL_ATI_texture_mirror_once + "GL_ATI_texture_mirror_once", +#endif +#ifdef GL_ATI_vertex_array_object + "GL_ATI_vertex_array_object", +#endif +#ifdef GL_ATI_vertex_attrib_array_object + "GL_ATI_vertex_attrib_array_object", +#endif +#ifdef GL_ATI_vertex_streams + "GL_ATI_vertex_streams", +#endif +#ifdef GL_DMP_program_binary + "GL_DMP_program_binary", +#endif +#ifdef GL_DMP_shader_binary + "GL_DMP_shader_binary", +#endif +#ifdef GL_EXT_422_pixels + "GL_EXT_422_pixels", +#endif +#ifdef GL_EXT_Cg_shader + "GL_EXT_Cg_shader", +#endif +#ifdef GL_EXT_EGL_image_array + "GL_EXT_EGL_image_array", +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + "GL_EXT_EGL_image_external_wrap_modes", +#endif +#ifdef GL_EXT_EGL_image_storage + "GL_EXT_EGL_image_storage", +#endif +#ifdef GL_EXT_EGL_sync + "GL_EXT_EGL_sync", +#endif +#ifdef GL_EXT_YUV_target + "GL_EXT_YUV_target", +#endif +#ifdef GL_EXT_abgr + "GL_EXT_abgr", +#endif +#ifdef GL_EXT_base_instance + "GL_EXT_base_instance", +#endif +#ifdef GL_EXT_bgra + "GL_EXT_bgra", +#endif +#ifdef GL_EXT_bindable_uniform + "GL_EXT_bindable_uniform", +#endif +#ifdef GL_EXT_blend_color + "GL_EXT_blend_color", +#endif +#ifdef GL_EXT_blend_equation_separate + "GL_EXT_blend_equation_separate", +#endif +#ifdef GL_EXT_blend_func_extended + "GL_EXT_blend_func_extended", +#endif +#ifdef GL_EXT_blend_func_separate + "GL_EXT_blend_func_separate", +#endif +#ifdef GL_EXT_blend_logic_op + "GL_EXT_blend_logic_op", +#endif +#ifdef GL_EXT_blend_minmax + "GL_EXT_blend_minmax", +#endif +#ifdef GL_EXT_blend_subtract + "GL_EXT_blend_subtract", +#endif +#ifdef GL_EXT_buffer_storage + "GL_EXT_buffer_storage", +#endif +#ifdef GL_EXT_clear_texture + "GL_EXT_clear_texture", +#endif +#ifdef GL_EXT_clip_control + "GL_EXT_clip_control", +#endif +#ifdef GL_EXT_clip_cull_distance + "GL_EXT_clip_cull_distance", +#endif +#ifdef GL_EXT_clip_volume_hint + "GL_EXT_clip_volume_hint", +#endif +#ifdef GL_EXT_cmyka + "GL_EXT_cmyka", +#endif +#ifdef GL_EXT_color_buffer_float + "GL_EXT_color_buffer_float", +#endif +#ifdef GL_EXT_color_buffer_half_float + "GL_EXT_color_buffer_half_float", +#endif +#ifdef GL_EXT_color_subtable + "GL_EXT_color_subtable", +#endif +#ifdef GL_EXT_compiled_vertex_array + "GL_EXT_compiled_vertex_array", +#endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + "GL_EXT_compressed_ETC1_RGB8_sub_texture", +#endif +#ifdef GL_EXT_conservative_depth + "GL_EXT_conservative_depth", +#endif +#ifdef GL_EXT_convolution + "GL_EXT_convolution", +#endif +#ifdef GL_EXT_coordinate_frame + "GL_EXT_coordinate_frame", +#endif +#ifdef GL_EXT_copy_image + "GL_EXT_copy_image", +#endif +#ifdef GL_EXT_copy_texture + "GL_EXT_copy_texture", +#endif +#ifdef GL_EXT_cull_vertex + "GL_EXT_cull_vertex", +#endif +#ifdef GL_EXT_debug_label + "GL_EXT_debug_label", +#endif +#ifdef GL_EXT_debug_marker + "GL_EXT_debug_marker", +#endif +#ifdef GL_EXT_depth_bounds_test + "GL_EXT_depth_bounds_test", +#endif +#ifdef GL_EXT_depth_clamp + "GL_EXT_depth_clamp", +#endif +#ifdef GL_EXT_direct_state_access + "GL_EXT_direct_state_access", +#endif +#ifdef GL_EXT_discard_framebuffer + "GL_EXT_discard_framebuffer", +#endif +#ifdef GL_EXT_disjoint_timer_query + "GL_EXT_disjoint_timer_query", +#endif +#ifdef GL_EXT_draw_buffers + "GL_EXT_draw_buffers", +#endif +#ifdef GL_EXT_draw_buffers2 + "GL_EXT_draw_buffers2", +#endif +#ifdef GL_EXT_draw_buffers_indexed + "GL_EXT_draw_buffers_indexed", +#endif +#ifdef GL_EXT_draw_elements_base_vertex + "GL_EXT_draw_elements_base_vertex", +#endif +#ifdef GL_EXT_draw_instanced + "GL_EXT_draw_instanced", +#endif +#ifdef GL_EXT_draw_range_elements + "GL_EXT_draw_range_elements", +#endif +#ifdef GL_EXT_draw_transform_feedback + "GL_EXT_draw_transform_feedback", +#endif +#ifdef GL_EXT_external_buffer + "GL_EXT_external_buffer", +#endif +#ifdef GL_EXT_float_blend + "GL_EXT_float_blend", +#endif +#ifdef GL_EXT_fog_coord + "GL_EXT_fog_coord", +#endif +#ifdef GL_EXT_frag_depth + "GL_EXT_frag_depth", +#endif +#ifdef GL_EXT_fragment_lighting + "GL_EXT_fragment_lighting", +#endif +#ifdef GL_EXT_framebuffer_blit + "GL_EXT_framebuffer_blit", +#endif +#ifdef GL_EXT_framebuffer_multisample + "GL_EXT_framebuffer_multisample", +#endif +#ifdef GL_EXT_framebuffer_multisample_blit_scaled + "GL_EXT_framebuffer_multisample_blit_scaled", +#endif +#ifdef GL_EXT_framebuffer_object + "GL_EXT_framebuffer_object", +#endif +#ifdef GL_EXT_framebuffer_sRGB + "GL_EXT_framebuffer_sRGB", +#endif +#ifdef GL_EXT_geometry_point_size + "GL_EXT_geometry_point_size", +#endif +#ifdef GL_EXT_geometry_shader + "GL_EXT_geometry_shader", +#endif +#ifdef GL_EXT_geometry_shader4 + "GL_EXT_geometry_shader4", +#endif +#ifdef GL_EXT_gpu_program_parameters + "GL_EXT_gpu_program_parameters", +#endif +#ifdef GL_EXT_gpu_shader4 + "GL_EXT_gpu_shader4", +#endif +#ifdef GL_EXT_gpu_shader5 + "GL_EXT_gpu_shader5", +#endif +#ifdef GL_EXT_histogram + "GL_EXT_histogram", +#endif +#ifdef GL_EXT_index_array_formats + "GL_EXT_index_array_formats", +#endif +#ifdef GL_EXT_index_func + "GL_EXT_index_func", +#endif +#ifdef GL_EXT_index_material + "GL_EXT_index_material", +#endif +#ifdef GL_EXT_index_texture + "GL_EXT_index_texture", +#endif +#ifdef GL_EXT_instanced_arrays + "GL_EXT_instanced_arrays", +#endif +#ifdef GL_EXT_light_texture + "GL_EXT_light_texture", +#endif +#ifdef GL_EXT_map_buffer_range + "GL_EXT_map_buffer_range", +#endif +#ifdef GL_EXT_memory_object + "GL_EXT_memory_object", +#endif +#ifdef GL_EXT_memory_object_fd + "GL_EXT_memory_object_fd", +#endif +#ifdef GL_EXT_memory_object_win32 + "GL_EXT_memory_object_win32", +#endif +#ifdef GL_EXT_misc_attribute + "GL_EXT_misc_attribute", +#endif +#ifdef GL_EXT_multi_draw_arrays + "GL_EXT_multi_draw_arrays", +#endif +#ifdef GL_EXT_multi_draw_indirect + "GL_EXT_multi_draw_indirect", +#endif +#ifdef GL_EXT_multiple_textures + "GL_EXT_multiple_textures", +#endif +#ifdef GL_EXT_multisample + "GL_EXT_multisample", +#endif +#ifdef GL_EXT_multisample_compatibility + "GL_EXT_multisample_compatibility", +#endif +#ifdef GL_EXT_multisampled_render_to_texture + "GL_EXT_multisampled_render_to_texture", +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + "GL_EXT_multisampled_render_to_texture2", +#endif +#ifdef GL_EXT_multiview_draw_buffers + "GL_EXT_multiview_draw_buffers", +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + "GL_EXT_multiview_tessellation_geometry_shader", +#endif +#ifdef GL_EXT_multiview_texture_multisample + "GL_EXT_multiview_texture_multisample", +#endif +#ifdef GL_EXT_multiview_timer_query + "GL_EXT_multiview_timer_query", +#endif +#ifdef GL_EXT_occlusion_query_boolean + "GL_EXT_occlusion_query_boolean", +#endif +#ifdef GL_EXT_packed_depth_stencil + "GL_EXT_packed_depth_stencil", +#endif +#ifdef GL_EXT_packed_float + "GL_EXT_packed_float", +#endif +#ifdef GL_EXT_packed_pixels + "GL_EXT_packed_pixels", +#endif +#ifdef GL_EXT_paletted_texture + "GL_EXT_paletted_texture", +#endif +#ifdef GL_EXT_pixel_buffer_object + "GL_EXT_pixel_buffer_object", +#endif +#ifdef GL_EXT_pixel_transform + "GL_EXT_pixel_transform", +#endif +#ifdef GL_EXT_pixel_transform_color_table + "GL_EXT_pixel_transform_color_table", +#endif +#ifdef GL_EXT_point_parameters + "GL_EXT_point_parameters", +#endif +#ifdef GL_EXT_polygon_offset + "GL_EXT_polygon_offset", +#endif +#ifdef GL_EXT_polygon_offset_clamp + "GL_EXT_polygon_offset_clamp", +#endif +#ifdef GL_EXT_post_depth_coverage + "GL_EXT_post_depth_coverage", +#endif +#ifdef GL_EXT_primitive_bounding_box + "GL_EXT_primitive_bounding_box", +#endif +#ifdef GL_EXT_protected_textures + "GL_EXT_protected_textures", +#endif +#ifdef GL_EXT_provoking_vertex + "GL_EXT_provoking_vertex", +#endif +#ifdef GL_EXT_pvrtc_sRGB + "GL_EXT_pvrtc_sRGB", +#endif +#ifdef GL_EXT_raster_multisample + "GL_EXT_raster_multisample", +#endif +#ifdef GL_EXT_read_format_bgra + "GL_EXT_read_format_bgra", +#endif +#ifdef GL_EXT_render_snorm + "GL_EXT_render_snorm", +#endif +#ifdef GL_EXT_rescale_normal + "GL_EXT_rescale_normal", +#endif +#ifdef GL_EXT_robustness + "GL_EXT_robustness", +#endif +#ifdef GL_EXT_sRGB + "GL_EXT_sRGB", +#endif +#ifdef GL_EXT_sRGB_write_control + "GL_EXT_sRGB_write_control", +#endif +#ifdef GL_EXT_scene_marker + "GL_EXT_scene_marker", +#endif +#ifdef GL_EXT_secondary_color + "GL_EXT_secondary_color", +#endif +#ifdef GL_EXT_semaphore + "GL_EXT_semaphore", +#endif +#ifdef GL_EXT_semaphore_fd + "GL_EXT_semaphore_fd", +#endif +#ifdef GL_EXT_semaphore_win32 + "GL_EXT_semaphore_win32", +#endif +#ifdef GL_EXT_separate_shader_objects + "GL_EXT_separate_shader_objects", +#endif +#ifdef GL_EXT_separate_specular_color + "GL_EXT_separate_specular_color", +#endif +#ifdef GL_EXT_shader_framebuffer_fetch + "GL_EXT_shader_framebuffer_fetch", +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + "GL_EXT_shader_framebuffer_fetch_non_coherent", +#endif +#ifdef GL_EXT_shader_group_vote + "GL_EXT_shader_group_vote", +#endif +#ifdef GL_EXT_shader_image_load_formatted + "GL_EXT_shader_image_load_formatted", +#endif +#ifdef GL_EXT_shader_image_load_store + "GL_EXT_shader_image_load_store", +#endif +#ifdef GL_EXT_shader_implicit_conversions + "GL_EXT_shader_implicit_conversions", +#endif +#ifdef GL_EXT_shader_integer_mix + "GL_EXT_shader_integer_mix", +#endif +#ifdef GL_EXT_shader_io_blocks + "GL_EXT_shader_io_blocks", +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + "GL_EXT_shader_non_constant_global_initializers", +#endif +#ifdef GL_EXT_shader_pixel_local_storage + "GL_EXT_shader_pixel_local_storage", +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + "GL_EXT_shader_pixel_local_storage2", +#endif +#ifdef GL_EXT_shader_texture_lod + "GL_EXT_shader_texture_lod", +#endif +#ifdef GL_EXT_shadow_funcs + "GL_EXT_shadow_funcs", +#endif +#ifdef GL_EXT_shadow_samplers + "GL_EXT_shadow_samplers", +#endif +#ifdef GL_EXT_shared_texture_palette + "GL_EXT_shared_texture_palette", +#endif +#ifdef GL_EXT_sparse_texture + "GL_EXT_sparse_texture", +#endif +#ifdef GL_EXT_sparse_texture2 + "GL_EXT_sparse_texture2", +#endif +#ifdef GL_EXT_static_vertex_array + "GL_EXT_static_vertex_array", +#endif +#ifdef GL_EXT_stencil_clear_tag + "GL_EXT_stencil_clear_tag", +#endif +#ifdef GL_EXT_stencil_two_side + "GL_EXT_stencil_two_side", +#endif +#ifdef GL_EXT_stencil_wrap + "GL_EXT_stencil_wrap", +#endif +#ifdef GL_EXT_subtexture + "GL_EXT_subtexture", +#endif +#ifdef GL_EXT_tessellation_point_size + "GL_EXT_tessellation_point_size", +#endif +#ifdef GL_EXT_tessellation_shader + "GL_EXT_tessellation_shader", +#endif +#ifdef GL_EXT_texture + "GL_EXT_texture", +#endif +#ifdef GL_EXT_texture3D + "GL_EXT_texture3D", +#endif +#ifdef GL_EXT_texture_array + "GL_EXT_texture_array", +#endif +#ifdef GL_EXT_texture_border_clamp + "GL_EXT_texture_border_clamp", +#endif +#ifdef GL_EXT_texture_buffer + "GL_EXT_texture_buffer", +#endif +#ifdef GL_EXT_texture_buffer_object + "GL_EXT_texture_buffer_object", +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + "GL_EXT_texture_compression_astc_decode_mode", +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + "GL_EXT_texture_compression_astc_decode_mode_rgb9e5", +#endif +#ifdef GL_EXT_texture_compression_bptc + "GL_EXT_texture_compression_bptc", +#endif +#ifdef GL_EXT_texture_compression_dxt1 + "GL_EXT_texture_compression_dxt1", +#endif +#ifdef GL_EXT_texture_compression_latc + "GL_EXT_texture_compression_latc", +#endif +#ifdef GL_EXT_texture_compression_rgtc + "GL_EXT_texture_compression_rgtc", +#endif +#ifdef GL_EXT_texture_compression_s3tc + "GL_EXT_texture_compression_s3tc", +#endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + "GL_EXT_texture_compression_s3tc_srgb", +#endif +#ifdef GL_EXT_texture_cube_map + "GL_EXT_texture_cube_map", +#endif +#ifdef GL_EXT_texture_cube_map_array + "GL_EXT_texture_cube_map_array", +#endif +#ifdef GL_EXT_texture_edge_clamp + "GL_EXT_texture_edge_clamp", +#endif +#ifdef GL_EXT_texture_env + "GL_EXT_texture_env", +#endif +#ifdef GL_EXT_texture_env_add + "GL_EXT_texture_env_add", +#endif +#ifdef GL_EXT_texture_env_combine + "GL_EXT_texture_env_combine", +#endif +#ifdef GL_EXT_texture_env_dot3 + "GL_EXT_texture_env_dot3", +#endif +#ifdef GL_EXT_texture_filter_anisotropic + "GL_EXT_texture_filter_anisotropic", +#endif +#ifdef GL_EXT_texture_filter_minmax + "GL_EXT_texture_filter_minmax", +#endif +#ifdef GL_EXT_texture_format_BGRA8888 + "GL_EXT_texture_format_BGRA8888", +#endif +#ifdef GL_EXT_texture_format_sRGB_override + "GL_EXT_texture_format_sRGB_override", +#endif +#ifdef GL_EXT_texture_integer + "GL_EXT_texture_integer", +#endif +#ifdef GL_EXT_texture_lod_bias + "GL_EXT_texture_lod_bias", +#endif +#ifdef GL_EXT_texture_mirror_clamp + "GL_EXT_texture_mirror_clamp", +#endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + "GL_EXT_texture_mirror_clamp_to_edge", +#endif +#ifdef GL_EXT_texture_norm16 + "GL_EXT_texture_norm16", +#endif +#ifdef GL_EXT_texture_object + "GL_EXT_texture_object", +#endif +#ifdef GL_EXT_texture_perturb_normal + "GL_EXT_texture_perturb_normal", +#endif +#ifdef GL_EXT_texture_query_lod + "GL_EXT_texture_query_lod", +#endif +#ifdef GL_EXT_texture_rectangle + "GL_EXT_texture_rectangle", +#endif +#ifdef GL_EXT_texture_rg + "GL_EXT_texture_rg", +#endif +#ifdef GL_EXT_texture_sRGB + "GL_EXT_texture_sRGB", +#endif +#ifdef GL_EXT_texture_sRGB_R8 + "GL_EXT_texture_sRGB_R8", +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + "GL_EXT_texture_sRGB_RG8", +#endif +#ifdef GL_EXT_texture_sRGB_decode + "GL_EXT_texture_sRGB_decode", +#endif +#ifdef GL_EXT_texture_shadow_lod + "GL_EXT_texture_shadow_lod", +#endif +#ifdef GL_EXT_texture_shared_exponent + "GL_EXT_texture_shared_exponent", +#endif +#ifdef GL_EXT_texture_snorm + "GL_EXT_texture_snorm", +#endif +#ifdef GL_EXT_texture_storage + "GL_EXT_texture_storage", +#endif +#ifdef GL_EXT_texture_swizzle + "GL_EXT_texture_swizzle", +#endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + "GL_EXT_texture_type_2_10_10_10_REV", +#endif +#ifdef GL_EXT_texture_view + "GL_EXT_texture_view", +#endif +#ifdef GL_EXT_timer_query + "GL_EXT_timer_query", +#endif +#ifdef GL_EXT_transform_feedback + "GL_EXT_transform_feedback", +#endif +#ifdef GL_EXT_unpack_subimage + "GL_EXT_unpack_subimage", +#endif +#ifdef GL_EXT_vertex_array + "GL_EXT_vertex_array", +#endif +#ifdef GL_EXT_vertex_array_bgra + "GL_EXT_vertex_array_bgra", +#endif +#ifdef GL_EXT_vertex_array_setXXX + "GL_EXT_vertex_array_setXXX", +#endif +#ifdef GL_EXT_vertex_attrib_64bit + "GL_EXT_vertex_attrib_64bit", +#endif +#ifdef GL_EXT_vertex_shader + "GL_EXT_vertex_shader", +#endif +#ifdef GL_EXT_vertex_weighting + "GL_EXT_vertex_weighting", +#endif +#ifdef GL_EXT_win32_keyed_mutex + "GL_EXT_win32_keyed_mutex", +#endif +#ifdef GL_EXT_window_rectangles + "GL_EXT_window_rectangles", +#endif +#ifdef GL_EXT_x11_sync_object + "GL_EXT_x11_sync_object", +#endif +#ifdef GL_FJ_shader_binary_GCCSO + "GL_FJ_shader_binary_GCCSO", +#endif +#ifdef GL_GREMEDY_frame_terminator + "GL_GREMEDY_frame_terminator", +#endif +#ifdef GL_GREMEDY_string_marker + "GL_GREMEDY_string_marker", +#endif +#ifdef GL_HP_convolution_border_modes + "GL_HP_convolution_border_modes", +#endif +#ifdef GL_HP_image_transform + "GL_HP_image_transform", +#endif +#ifdef GL_HP_occlusion_test + "GL_HP_occlusion_test", +#endif +#ifdef GL_HP_texture_lighting + "GL_HP_texture_lighting", +#endif +#ifdef GL_IBM_cull_vertex + "GL_IBM_cull_vertex", +#endif +#ifdef GL_IBM_multimode_draw_arrays + "GL_IBM_multimode_draw_arrays", +#endif +#ifdef GL_IBM_rasterpos_clip + "GL_IBM_rasterpos_clip", +#endif +#ifdef GL_IBM_static_data + "GL_IBM_static_data", +#endif +#ifdef GL_IBM_texture_mirrored_repeat + "GL_IBM_texture_mirrored_repeat", +#endif +#ifdef GL_IBM_vertex_array_lists + "GL_IBM_vertex_array_lists", +#endif +#ifdef GL_IMG_bindless_texture + "GL_IMG_bindless_texture", +#endif +#ifdef GL_IMG_framebuffer_downsample + "GL_IMG_framebuffer_downsample", +#endif +#ifdef GL_IMG_multisampled_render_to_texture + "GL_IMG_multisampled_render_to_texture", +#endif +#ifdef GL_IMG_program_binary + "GL_IMG_program_binary", +#endif +#ifdef GL_IMG_read_format + "GL_IMG_read_format", +#endif +#ifdef GL_IMG_shader_binary + "GL_IMG_shader_binary", +#endif +#ifdef GL_IMG_texture_compression_pvrtc + "GL_IMG_texture_compression_pvrtc", +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + "GL_IMG_texture_compression_pvrtc2", +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + "GL_IMG_texture_env_enhanced_fixed_function", +#endif +#ifdef GL_IMG_texture_filter_cubic + "GL_IMG_texture_filter_cubic", +#endif +#ifdef GL_INGR_color_clamp + "GL_INGR_color_clamp", +#endif +#ifdef GL_INGR_interlace_read + "GL_INGR_interlace_read", +#endif +#ifdef GL_INTEL_blackhole_render + "GL_INTEL_blackhole_render", +#endif +#ifdef GL_INTEL_conservative_rasterization + "GL_INTEL_conservative_rasterization", +#endif +#ifdef GL_INTEL_fragment_shader_ordering + "GL_INTEL_fragment_shader_ordering", +#endif +#ifdef GL_INTEL_framebuffer_CMAA + "GL_INTEL_framebuffer_CMAA", +#endif +#ifdef GL_INTEL_map_texture + "GL_INTEL_map_texture", +#endif +#ifdef GL_INTEL_parallel_arrays + "GL_INTEL_parallel_arrays", +#endif +#ifdef GL_INTEL_performance_query + "GL_INTEL_performance_query", +#endif +#ifdef GL_INTEL_shader_integer_functions2 + "GL_INTEL_shader_integer_functions2", +#endif +#ifdef GL_INTEL_texture_scissor + "GL_INTEL_texture_scissor", +#endif +#ifdef GL_KHR_blend_equation_advanced + "GL_KHR_blend_equation_advanced", +#endif +#ifdef GL_KHR_blend_equation_advanced_coherent + "GL_KHR_blend_equation_advanced_coherent", +#endif +#ifdef GL_KHR_context_flush_control + "GL_KHR_context_flush_control", +#endif +#ifdef GL_KHR_debug + "GL_KHR_debug", +#endif +#ifdef GL_KHR_no_error + "GL_KHR_no_error", +#endif +#ifdef GL_KHR_parallel_shader_compile + "GL_KHR_parallel_shader_compile", +#endif +#ifdef GL_KHR_robust_buffer_access_behavior + "GL_KHR_robust_buffer_access_behavior", +#endif +#ifdef GL_KHR_robustness + "GL_KHR_robustness", +#endif +#ifdef GL_KHR_shader_subgroup + "GL_KHR_shader_subgroup", +#endif +#ifdef GL_KHR_texture_compression_astc_hdr + "GL_KHR_texture_compression_astc_hdr", +#endif +#ifdef GL_KHR_texture_compression_astc_ldr + "GL_KHR_texture_compression_astc_ldr", +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + "GL_KHR_texture_compression_astc_sliced_3d", +#endif +#ifdef GL_KTX_buffer_region + "GL_KTX_buffer_region", +#endif +#ifdef GL_MESAX_texture_stack + "GL_MESAX_texture_stack", +#endif +#ifdef GL_MESA_framebuffer_flip_y + "GL_MESA_framebuffer_flip_y", +#endif +#ifdef GL_MESA_pack_invert + "GL_MESA_pack_invert", +#endif +#ifdef GL_MESA_program_binary_formats + "GL_MESA_program_binary_formats", +#endif +#ifdef GL_MESA_resize_buffers + "GL_MESA_resize_buffers", +#endif +#ifdef GL_MESA_shader_integer_functions + "GL_MESA_shader_integer_functions", +#endif +#ifdef GL_MESA_tile_raster_order + "GL_MESA_tile_raster_order", +#endif +#ifdef GL_MESA_window_pos + "GL_MESA_window_pos", +#endif +#ifdef GL_MESA_ycbcr_texture + "GL_MESA_ycbcr_texture", +#endif +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + "GL_NVX_blend_equation_advanced_multi_draw_buffers", +#endif +#ifdef GL_NVX_conditional_render + "GL_NVX_conditional_render", +#endif +#ifdef GL_NVX_gpu_memory_info + "GL_NVX_gpu_memory_info", +#endif +#ifdef GL_NVX_gpu_multicast2 + "GL_NVX_gpu_multicast2", +#endif +#ifdef GL_NVX_linked_gpu_multicast + "GL_NVX_linked_gpu_multicast", +#endif +#ifdef GL_NVX_progress_fence + "GL_NVX_progress_fence", +#endif +#ifdef GL_NV_3dvision_settings + "GL_NV_3dvision_settings", +#endif +#ifdef GL_NV_EGL_stream_consumer_external + "GL_NV_EGL_stream_consumer_external", +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + "GL_NV_alpha_to_coverage_dither_control", +#endif +#ifdef GL_NV_bgr + "GL_NV_bgr", +#endif +#ifdef GL_NV_bindless_multi_draw_indirect + "GL_NV_bindless_multi_draw_indirect", +#endif +#ifdef GL_NV_bindless_multi_draw_indirect_count + "GL_NV_bindless_multi_draw_indirect_count", +#endif +#ifdef GL_NV_bindless_texture + "GL_NV_bindless_texture", +#endif +#ifdef GL_NV_blend_equation_advanced + "GL_NV_blend_equation_advanced", +#endif +#ifdef GL_NV_blend_equation_advanced_coherent + "GL_NV_blend_equation_advanced_coherent", +#endif +#ifdef GL_NV_blend_minmax_factor + "GL_NV_blend_minmax_factor", +#endif +#ifdef GL_NV_blend_square + "GL_NV_blend_square", +#endif +#ifdef GL_NV_clip_space_w_scaling + "GL_NV_clip_space_w_scaling", +#endif +#ifdef GL_NV_command_list + "GL_NV_command_list", +#endif +#ifdef GL_NV_compute_program5 + "GL_NV_compute_program5", +#endif +#ifdef GL_NV_compute_shader_derivatives + "GL_NV_compute_shader_derivatives", +#endif +#ifdef GL_NV_conditional_render + "GL_NV_conditional_render", +#endif +#ifdef GL_NV_conservative_raster + "GL_NV_conservative_raster", +#endif +#ifdef GL_NV_conservative_raster_dilate + "GL_NV_conservative_raster_dilate", +#endif +#ifdef GL_NV_conservative_raster_pre_snap + "GL_NV_conservative_raster_pre_snap", +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + "GL_NV_conservative_raster_pre_snap_triangles", +#endif +#ifdef GL_NV_conservative_raster_underestimation + "GL_NV_conservative_raster_underestimation", +#endif +#ifdef GL_NV_copy_buffer + "GL_NV_copy_buffer", +#endif +#ifdef GL_NV_copy_depth_to_color + "GL_NV_copy_depth_to_color", +#endif +#ifdef GL_NV_copy_image + "GL_NV_copy_image", +#endif +#ifdef GL_NV_deep_texture3D + "GL_NV_deep_texture3D", +#endif +#ifdef GL_NV_depth_buffer_float + "GL_NV_depth_buffer_float", +#endif +#ifdef GL_NV_depth_clamp + "GL_NV_depth_clamp", +#endif +#ifdef GL_NV_depth_nonlinear + "GL_NV_depth_nonlinear", +#endif +#ifdef GL_NV_depth_range_unclamped + "GL_NV_depth_range_unclamped", +#endif +#ifdef GL_NV_draw_buffers + "GL_NV_draw_buffers", +#endif +#ifdef GL_NV_draw_instanced + "GL_NV_draw_instanced", +#endif +#ifdef GL_NV_draw_texture + "GL_NV_draw_texture", +#endif +#ifdef GL_NV_draw_vulkan_image + "GL_NV_draw_vulkan_image", +#endif +#ifdef GL_NV_evaluators + "GL_NV_evaluators", +#endif +#ifdef GL_NV_explicit_attrib_location + "GL_NV_explicit_attrib_location", +#endif +#ifdef GL_NV_explicit_multisample + "GL_NV_explicit_multisample", +#endif +#ifdef GL_NV_fbo_color_attachments + "GL_NV_fbo_color_attachments", +#endif +#ifdef GL_NV_fence + "GL_NV_fence", +#endif +#ifdef GL_NV_fill_rectangle + "GL_NV_fill_rectangle", +#endif +#ifdef GL_NV_float_buffer + "GL_NV_float_buffer", +#endif +#ifdef GL_NV_fog_distance + "GL_NV_fog_distance", +#endif +#ifdef GL_NV_fragment_coverage_to_color + "GL_NV_fragment_coverage_to_color", +#endif +#ifdef GL_NV_fragment_program + "GL_NV_fragment_program", +#endif +#ifdef GL_NV_fragment_program2 + "GL_NV_fragment_program2", +#endif +#ifdef GL_NV_fragment_program4 + "GL_NV_fragment_program4", +#endif +#ifdef GL_NV_fragment_program_option + "GL_NV_fragment_program_option", +#endif +#ifdef GL_NV_fragment_shader_barycentric + "GL_NV_fragment_shader_barycentric", +#endif +#ifdef GL_NV_fragment_shader_interlock + "GL_NV_fragment_shader_interlock", +#endif +#ifdef GL_NV_framebuffer_blit + "GL_NV_framebuffer_blit", +#endif +#ifdef GL_NV_framebuffer_mixed_samples + "GL_NV_framebuffer_mixed_samples", +#endif +#ifdef GL_NV_framebuffer_multisample + "GL_NV_framebuffer_multisample", +#endif +#ifdef GL_NV_framebuffer_multisample_coverage + "GL_NV_framebuffer_multisample_coverage", +#endif +#ifdef GL_NV_generate_mipmap_sRGB + "GL_NV_generate_mipmap_sRGB", +#endif +#ifdef GL_NV_geometry_program4 + "GL_NV_geometry_program4", +#endif +#ifdef GL_NV_geometry_shader4 + "GL_NV_geometry_shader4", +#endif +#ifdef GL_NV_geometry_shader_passthrough + "GL_NV_geometry_shader_passthrough", +#endif +#ifdef GL_NV_gpu_multicast + "GL_NV_gpu_multicast", +#endif +#ifdef GL_NV_gpu_program4 + "GL_NV_gpu_program4", +#endif +#ifdef GL_NV_gpu_program5 + "GL_NV_gpu_program5", +#endif +#ifdef GL_NV_gpu_program5_mem_extended + "GL_NV_gpu_program5_mem_extended", +#endif +#ifdef GL_NV_gpu_program_fp64 + "GL_NV_gpu_program_fp64", +#endif +#ifdef GL_NV_gpu_shader5 + "GL_NV_gpu_shader5", +#endif +#ifdef GL_NV_half_float + "GL_NV_half_float", +#endif +#ifdef GL_NV_image_formats + "GL_NV_image_formats", +#endif +#ifdef GL_NV_instanced_arrays + "GL_NV_instanced_arrays", +#endif +#ifdef GL_NV_internalformat_sample_query + "GL_NV_internalformat_sample_query", +#endif +#ifdef GL_NV_light_max_exponent + "GL_NV_light_max_exponent", +#endif +#ifdef GL_NV_memory_attachment + "GL_NV_memory_attachment", +#endif +#ifdef GL_NV_mesh_shader + "GL_NV_mesh_shader", +#endif +#ifdef GL_NV_multisample_coverage + "GL_NV_multisample_coverage", +#endif +#ifdef GL_NV_multisample_filter_hint + "GL_NV_multisample_filter_hint", +#endif +#ifdef GL_NV_non_square_matrices + "GL_NV_non_square_matrices", +#endif +#ifdef GL_NV_occlusion_query + "GL_NV_occlusion_query", +#endif +#ifdef GL_NV_pack_subimage + "GL_NV_pack_subimage", +#endif +#ifdef GL_NV_packed_depth_stencil + "GL_NV_packed_depth_stencil", +#endif +#ifdef GL_NV_packed_float + "GL_NV_packed_float", +#endif +#ifdef GL_NV_packed_float_linear + "GL_NV_packed_float_linear", +#endif +#ifdef GL_NV_parameter_buffer_object + "GL_NV_parameter_buffer_object", +#endif +#ifdef GL_NV_parameter_buffer_object2 + "GL_NV_parameter_buffer_object2", +#endif +#ifdef GL_NV_path_rendering + "GL_NV_path_rendering", +#endif +#ifdef GL_NV_path_rendering_shared_edge + "GL_NV_path_rendering_shared_edge", +#endif +#ifdef GL_NV_pixel_buffer_object + "GL_NV_pixel_buffer_object", +#endif +#ifdef GL_NV_pixel_data_range + "GL_NV_pixel_data_range", +#endif +#ifdef GL_NV_platform_binary + "GL_NV_platform_binary", +#endif +#ifdef GL_NV_point_sprite + "GL_NV_point_sprite", +#endif +#ifdef GL_NV_polygon_mode + "GL_NV_polygon_mode", +#endif +#ifdef GL_NV_present_video + "GL_NV_present_video", +#endif +#ifdef GL_NV_primitive_restart + "GL_NV_primitive_restart", +#endif +#ifdef GL_NV_query_resource_tag + "GL_NV_query_resource_tag", +#endif +#ifdef GL_NV_read_buffer + "GL_NV_read_buffer", +#endif +#ifdef GL_NV_read_buffer_front + "GL_NV_read_buffer_front", +#endif +#ifdef GL_NV_read_depth + "GL_NV_read_depth", +#endif +#ifdef GL_NV_read_depth_stencil + "GL_NV_read_depth_stencil", +#endif +#ifdef GL_NV_read_stencil + "GL_NV_read_stencil", +#endif +#ifdef GL_NV_register_combiners + "GL_NV_register_combiners", +#endif +#ifdef GL_NV_register_combiners2 + "GL_NV_register_combiners2", +#endif +#ifdef GL_NV_representative_fragment_test + "GL_NV_representative_fragment_test", +#endif +#ifdef GL_NV_robustness_video_memory_purge + "GL_NV_robustness_video_memory_purge", +#endif +#ifdef GL_NV_sRGB_formats + "GL_NV_sRGB_formats", +#endif +#ifdef GL_NV_sample_locations + "GL_NV_sample_locations", +#endif +#ifdef GL_NV_sample_mask_override_coverage + "GL_NV_sample_mask_override_coverage", +#endif +#ifdef GL_NV_scissor_exclusive + "GL_NV_scissor_exclusive", +#endif +#ifdef GL_NV_shader_atomic_counters + "GL_NV_shader_atomic_counters", +#endif +#ifdef GL_NV_shader_atomic_float + "GL_NV_shader_atomic_float", +#endif +#ifdef GL_NV_shader_atomic_float64 + "GL_NV_shader_atomic_float64", +#endif +#ifdef GL_NV_shader_atomic_fp16_vector + "GL_NV_shader_atomic_fp16_vector", +#endif +#ifdef GL_NV_shader_atomic_int64 + "GL_NV_shader_atomic_int64", +#endif +#ifdef GL_NV_shader_buffer_load + "GL_NV_shader_buffer_load", +#endif +#ifdef GL_NV_shader_noperspective_interpolation + "GL_NV_shader_noperspective_interpolation", +#endif +#ifdef GL_NV_shader_storage_buffer_object + "GL_NV_shader_storage_buffer_object", +#endif +#ifdef GL_NV_shader_subgroup_partitioned + "GL_NV_shader_subgroup_partitioned", +#endif +#ifdef GL_NV_shader_texture_footprint + "GL_NV_shader_texture_footprint", +#endif +#ifdef GL_NV_shader_thread_group + "GL_NV_shader_thread_group", +#endif +#ifdef GL_NV_shader_thread_shuffle + "GL_NV_shader_thread_shuffle", +#endif +#ifdef GL_NV_shading_rate_image + "GL_NV_shading_rate_image", +#endif +#ifdef GL_NV_shadow_samplers_array + "GL_NV_shadow_samplers_array", +#endif +#ifdef GL_NV_shadow_samplers_cube + "GL_NV_shadow_samplers_cube", +#endif +#ifdef GL_NV_stereo_view_rendering + "GL_NV_stereo_view_rendering", +#endif +#ifdef GL_NV_tessellation_program5 + "GL_NV_tessellation_program5", +#endif +#ifdef GL_NV_texgen_emboss + "GL_NV_texgen_emboss", +#endif +#ifdef GL_NV_texgen_reflection + "GL_NV_texgen_reflection", +#endif +#ifdef GL_NV_texture_array + "GL_NV_texture_array", +#endif +#ifdef GL_NV_texture_barrier + "GL_NV_texture_barrier", +#endif +#ifdef GL_NV_texture_border_clamp + "GL_NV_texture_border_clamp", +#endif +#ifdef GL_NV_texture_compression_latc + "GL_NV_texture_compression_latc", +#endif +#ifdef GL_NV_texture_compression_s3tc + "GL_NV_texture_compression_s3tc", +#endif +#ifdef GL_NV_texture_compression_s3tc_update + "GL_NV_texture_compression_s3tc_update", +#endif +#ifdef GL_NV_texture_compression_vtc + "GL_NV_texture_compression_vtc", +#endif +#ifdef GL_NV_texture_env_combine4 + "GL_NV_texture_env_combine4", +#endif +#ifdef GL_NV_texture_expand_normal + "GL_NV_texture_expand_normal", +#endif +#ifdef GL_NV_texture_multisample + "GL_NV_texture_multisample", +#endif +#ifdef GL_NV_texture_npot_2D_mipmap + "GL_NV_texture_npot_2D_mipmap", +#endif +#ifdef GL_NV_texture_rectangle + "GL_NV_texture_rectangle", +#endif +#ifdef GL_NV_texture_rectangle_compressed + "GL_NV_texture_rectangle_compressed", +#endif +#ifdef GL_NV_texture_shader + "GL_NV_texture_shader", +#endif +#ifdef GL_NV_texture_shader2 + "GL_NV_texture_shader2", +#endif +#ifdef GL_NV_texture_shader3 + "GL_NV_texture_shader3", +#endif +#ifdef GL_NV_transform_feedback + "GL_NV_transform_feedback", +#endif +#ifdef GL_NV_transform_feedback2 + "GL_NV_transform_feedback2", +#endif +#ifdef GL_NV_uniform_buffer_unified_memory + "GL_NV_uniform_buffer_unified_memory", +#endif +#ifdef GL_NV_vdpau_interop + "GL_NV_vdpau_interop", +#endif +#ifdef GL_NV_vdpau_interop2 + "GL_NV_vdpau_interop2", +#endif +#ifdef GL_NV_vertex_array_range + "GL_NV_vertex_array_range", +#endif +#ifdef GL_NV_vertex_array_range2 + "GL_NV_vertex_array_range2", +#endif +#ifdef GL_NV_vertex_attrib_integer_64bit + "GL_NV_vertex_attrib_integer_64bit", +#endif +#ifdef GL_NV_vertex_buffer_unified_memory + "GL_NV_vertex_buffer_unified_memory", +#endif +#ifdef GL_NV_vertex_program + "GL_NV_vertex_program", +#endif +#ifdef GL_NV_vertex_program1_1 + "GL_NV_vertex_program1_1", +#endif +#ifdef GL_NV_vertex_program2 + "GL_NV_vertex_program2", +#endif +#ifdef GL_NV_vertex_program2_option + "GL_NV_vertex_program2_option", +#endif +#ifdef GL_NV_vertex_program3 + "GL_NV_vertex_program3", +#endif +#ifdef GL_NV_vertex_program4 + "GL_NV_vertex_program4", +#endif +#ifdef GL_NV_video_capture + "GL_NV_video_capture", +#endif +#ifdef GL_NV_viewport_array + "GL_NV_viewport_array", +#endif +#ifdef GL_NV_viewport_array2 + "GL_NV_viewport_array2", +#endif +#ifdef GL_NV_viewport_swizzle + "GL_NV_viewport_swizzle", +#endif +#ifdef GL_OES_EGL_image + "GL_OES_EGL_image", +#endif +#ifdef GL_OES_EGL_image_external + "GL_OES_EGL_image_external", +#endif +#ifdef GL_OES_EGL_image_external_essl3 + "GL_OES_EGL_image_external_essl3", +#endif +#ifdef GL_OES_blend_equation_separate + "GL_OES_blend_equation_separate", +#endif +#ifdef GL_OES_blend_func_separate + "GL_OES_blend_func_separate", +#endif +#ifdef GL_OES_blend_subtract + "GL_OES_blend_subtract", +#endif +#ifdef GL_OES_byte_coordinates + "GL_OES_byte_coordinates", +#endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + "GL_OES_compressed_ETC1_RGB8_texture", +#endif +#ifdef GL_OES_compressed_paletted_texture + "GL_OES_compressed_paletted_texture", +#endif +#ifdef GL_OES_copy_image + "GL_OES_copy_image", +#endif +#ifdef GL_OES_depth24 + "GL_OES_depth24", +#endif +#ifdef GL_OES_depth32 + "GL_OES_depth32", +#endif +#ifdef GL_OES_depth_texture + "GL_OES_depth_texture", +#endif +#ifdef GL_OES_depth_texture_cube_map + "GL_OES_depth_texture_cube_map", +#endif +#ifdef GL_OES_draw_buffers_indexed + "GL_OES_draw_buffers_indexed", +#endif +#ifdef GL_OES_draw_texture + "GL_OES_draw_texture", +#endif +#ifdef GL_OES_element_index_uint + "GL_OES_element_index_uint", +#endif +#ifdef GL_OES_extended_matrix_palette + "GL_OES_extended_matrix_palette", +#endif +#ifdef GL_OES_fbo_render_mipmap + "GL_OES_fbo_render_mipmap", +#endif +#ifdef GL_OES_fragment_precision_high + "GL_OES_fragment_precision_high", +#endif +#ifdef GL_OES_framebuffer_object + "GL_OES_framebuffer_object", +#endif +#ifdef GL_OES_geometry_point_size + "GL_OES_geometry_point_size", +#endif +#ifdef GL_OES_geometry_shader + "GL_OES_geometry_shader", +#endif +#ifdef GL_OES_get_program_binary + "GL_OES_get_program_binary", +#endif +#ifdef GL_OES_gpu_shader5 + "GL_OES_gpu_shader5", +#endif +#ifdef GL_OES_mapbuffer + "GL_OES_mapbuffer", +#endif +#ifdef GL_OES_matrix_get + "GL_OES_matrix_get", +#endif +#ifdef GL_OES_matrix_palette + "GL_OES_matrix_palette", +#endif +#ifdef GL_OES_packed_depth_stencil + "GL_OES_packed_depth_stencil", +#endif +#ifdef GL_OES_point_size_array + "GL_OES_point_size_array", +#endif +#ifdef GL_OES_point_sprite + "GL_OES_point_sprite", +#endif +#ifdef GL_OES_read_format + "GL_OES_read_format", +#endif +#ifdef GL_OES_required_internalformat + "GL_OES_required_internalformat", +#endif +#ifdef GL_OES_rgb8_rgba8 + "GL_OES_rgb8_rgba8", +#endif +#ifdef GL_OES_sample_shading + "GL_OES_sample_shading", +#endif +#ifdef GL_OES_sample_variables + "GL_OES_sample_variables", +#endif +#ifdef GL_OES_shader_image_atomic + "GL_OES_shader_image_atomic", +#endif +#ifdef GL_OES_shader_io_blocks + "GL_OES_shader_io_blocks", +#endif +#ifdef GL_OES_shader_multisample_interpolation + "GL_OES_shader_multisample_interpolation", +#endif +#ifdef GL_OES_single_precision + "GL_OES_single_precision", +#endif +#ifdef GL_OES_standard_derivatives + "GL_OES_standard_derivatives", +#endif +#ifdef GL_OES_stencil1 + "GL_OES_stencil1", +#endif +#ifdef GL_OES_stencil4 + "GL_OES_stencil4", +#endif +#ifdef GL_OES_stencil8 + "GL_OES_stencil8", +#endif +#ifdef GL_OES_surfaceless_context + "GL_OES_surfaceless_context", +#endif +#ifdef GL_OES_tessellation_point_size + "GL_OES_tessellation_point_size", +#endif +#ifdef GL_OES_tessellation_shader + "GL_OES_tessellation_shader", +#endif +#ifdef GL_OES_texture_3D + "GL_OES_texture_3D", +#endif +#ifdef GL_OES_texture_border_clamp + "GL_OES_texture_border_clamp", +#endif +#ifdef GL_OES_texture_buffer + "GL_OES_texture_buffer", +#endif +#ifdef GL_OES_texture_compression_astc + "GL_OES_texture_compression_astc", +#endif +#ifdef GL_OES_texture_cube_map + "GL_OES_texture_cube_map", +#endif +#ifdef GL_OES_texture_cube_map_array + "GL_OES_texture_cube_map_array", +#endif +#ifdef GL_OES_texture_env_crossbar + "GL_OES_texture_env_crossbar", +#endif +#ifdef GL_OES_texture_mirrored_repeat + "GL_OES_texture_mirrored_repeat", +#endif +#ifdef GL_OES_texture_npot + "GL_OES_texture_npot", +#endif +#ifdef GL_OES_texture_stencil8 + "GL_OES_texture_stencil8", +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + "GL_OES_texture_storage_multisample_2d_array", +#endif +#ifdef GL_OES_texture_view + "GL_OES_texture_view", +#endif +#ifdef GL_OES_vertex_array_object + "GL_OES_vertex_array_object", +#endif +#ifdef GL_OES_vertex_half_float + "GL_OES_vertex_half_float", +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + "GL_OES_vertex_type_10_10_10_2", +#endif +#ifdef GL_OML_interlace + "GL_OML_interlace", +#endif +#ifdef GL_OML_resample + "GL_OML_resample", +#endif +#ifdef GL_OML_subsample + "GL_OML_subsample", +#endif +#ifdef GL_OVR_multiview + "GL_OVR_multiview", +#endif +#ifdef GL_OVR_multiview2 + "GL_OVR_multiview2", +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + "GL_OVR_multiview_multisampled_render_to_texture", +#endif +#ifdef GL_PGI_misc_hints + "GL_PGI_misc_hints", +#endif +#ifdef GL_PGI_vertex_hints + "GL_PGI_vertex_hints", +#endif +#ifdef GL_QCOM_YUV_texture_gather + "GL_QCOM_YUV_texture_gather", +#endif +#ifdef GL_QCOM_alpha_test + "GL_QCOM_alpha_test", +#endif +#ifdef GL_QCOM_binning_control + "GL_QCOM_binning_control", +#endif +#ifdef GL_QCOM_driver_control + "GL_QCOM_driver_control", +#endif +#ifdef GL_QCOM_extended_get + "GL_QCOM_extended_get", +#endif +#ifdef GL_QCOM_extended_get2 + "GL_QCOM_extended_get2", +#endif +#ifdef GL_QCOM_framebuffer_foveated + "GL_QCOM_framebuffer_foveated", +#endif +#ifdef GL_QCOM_perfmon_global_mode + "GL_QCOM_perfmon_global_mode", +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + "GL_QCOM_shader_framebuffer_fetch_noncoherent", +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + "GL_QCOM_shader_framebuffer_fetch_rate", +#endif +#ifdef GL_QCOM_texture_foveated + "GL_QCOM_texture_foveated", +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + "GL_QCOM_texture_foveated_subsampled_layout", +#endif +#ifdef GL_QCOM_tiled_rendering + "GL_QCOM_tiled_rendering", +#endif +#ifdef GL_QCOM_writeonly_rendering + "GL_QCOM_writeonly_rendering", +#endif +#ifdef GL_REGAL_ES1_0_compatibility + "GL_REGAL_ES1_0_compatibility", +#endif +#ifdef GL_REGAL_ES1_1_compatibility + "GL_REGAL_ES1_1_compatibility", +#endif +#ifdef GL_REGAL_enable + "GL_REGAL_enable", +#endif +#ifdef GL_REGAL_error_string + "GL_REGAL_error_string", +#endif +#ifdef GL_REGAL_extension_query + "GL_REGAL_extension_query", +#endif +#ifdef GL_REGAL_log + "GL_REGAL_log", +#endif +#ifdef GL_REGAL_proc_address + "GL_REGAL_proc_address", +#endif +#ifdef GL_REND_screen_coordinates + "GL_REND_screen_coordinates", +#endif +#ifdef GL_S3_s3tc + "GL_S3_s3tc", +#endif +#ifdef GL_SGIS_clip_band_hint + "GL_SGIS_clip_band_hint", +#endif +#ifdef GL_SGIS_color_range + "GL_SGIS_color_range", +#endif +#ifdef GL_SGIS_detail_texture + "GL_SGIS_detail_texture", +#endif +#ifdef GL_SGIS_fog_function + "GL_SGIS_fog_function", +#endif +#ifdef GL_SGIS_generate_mipmap + "GL_SGIS_generate_mipmap", +#endif +#ifdef GL_SGIS_line_texgen + "GL_SGIS_line_texgen", +#endif +#ifdef GL_SGIS_multisample + "GL_SGIS_multisample", +#endif +#ifdef GL_SGIS_multitexture + "GL_SGIS_multitexture", +#endif +#ifdef GL_SGIS_pixel_texture + "GL_SGIS_pixel_texture", +#endif +#ifdef GL_SGIS_point_line_texgen + "GL_SGIS_point_line_texgen", +#endif +#ifdef GL_SGIS_shared_multisample + "GL_SGIS_shared_multisample", +#endif +#ifdef GL_SGIS_sharpen_texture + "GL_SGIS_sharpen_texture", +#endif +#ifdef GL_SGIS_texture4D + "GL_SGIS_texture4D", +#endif +#ifdef GL_SGIS_texture_border_clamp + "GL_SGIS_texture_border_clamp", +#endif +#ifdef GL_SGIS_texture_edge_clamp + "GL_SGIS_texture_edge_clamp", +#endif +#ifdef GL_SGIS_texture_filter4 + "GL_SGIS_texture_filter4", +#endif +#ifdef GL_SGIS_texture_lod + "GL_SGIS_texture_lod", +#endif +#ifdef GL_SGIS_texture_select + "GL_SGIS_texture_select", +#endif +#ifdef GL_SGIX_async + "GL_SGIX_async", +#endif +#ifdef GL_SGIX_async_histogram + "GL_SGIX_async_histogram", +#endif +#ifdef GL_SGIX_async_pixel + "GL_SGIX_async_pixel", +#endif +#ifdef GL_SGIX_bali_g_instruments + "GL_SGIX_bali_g_instruments", +#endif +#ifdef GL_SGIX_bali_r_instruments + "GL_SGIX_bali_r_instruments", +#endif +#ifdef GL_SGIX_bali_timer_instruments + "GL_SGIX_bali_timer_instruments", +#endif +#ifdef GL_SGIX_blend_alpha_minmax + "GL_SGIX_blend_alpha_minmax", +#endif +#ifdef GL_SGIX_blend_cadd + "GL_SGIX_blend_cadd", +#endif +#ifdef GL_SGIX_blend_cmultiply + "GL_SGIX_blend_cmultiply", +#endif +#ifdef GL_SGIX_calligraphic_fragment + "GL_SGIX_calligraphic_fragment", +#endif +#ifdef GL_SGIX_clipmap + "GL_SGIX_clipmap", +#endif +#ifdef GL_SGIX_color_matrix_accuracy + "GL_SGIX_color_matrix_accuracy", +#endif +#ifdef GL_SGIX_color_table_index_mode + "GL_SGIX_color_table_index_mode", +#endif +#ifdef GL_SGIX_complex_polar + "GL_SGIX_complex_polar", +#endif +#ifdef GL_SGIX_convolution_accuracy + "GL_SGIX_convolution_accuracy", +#endif +#ifdef GL_SGIX_cube_map + "GL_SGIX_cube_map", +#endif +#ifdef GL_SGIX_cylinder_texgen + "GL_SGIX_cylinder_texgen", +#endif +#ifdef GL_SGIX_datapipe + "GL_SGIX_datapipe", +#endif +#ifdef GL_SGIX_decimation + "GL_SGIX_decimation", +#endif +#ifdef GL_SGIX_depth_pass_instrument + "GL_SGIX_depth_pass_instrument", +#endif +#ifdef GL_SGIX_depth_texture + "GL_SGIX_depth_texture", +#endif +#ifdef GL_SGIX_dvc + "GL_SGIX_dvc", +#endif +#ifdef GL_SGIX_flush_raster + "GL_SGIX_flush_raster", +#endif +#ifdef GL_SGIX_fog_blend + "GL_SGIX_fog_blend", +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + "GL_SGIX_fog_factor_to_alpha", +#endif +#ifdef GL_SGIX_fog_layers + "GL_SGIX_fog_layers", +#endif +#ifdef GL_SGIX_fog_offset + "GL_SGIX_fog_offset", +#endif +#ifdef GL_SGIX_fog_patchy + "GL_SGIX_fog_patchy", +#endif +#ifdef GL_SGIX_fog_scale + "GL_SGIX_fog_scale", +#endif +#ifdef GL_SGIX_fog_texture + "GL_SGIX_fog_texture", +#endif +#ifdef GL_SGIX_fragment_lighting_space + "GL_SGIX_fragment_lighting_space", +#endif +#ifdef GL_SGIX_fragment_specular_lighting + "GL_SGIX_fragment_specular_lighting", +#endif +#ifdef GL_SGIX_fragments_instrument + "GL_SGIX_fragments_instrument", +#endif +#ifdef GL_SGIX_framezoom + "GL_SGIX_framezoom", +#endif +#ifdef GL_SGIX_icc_texture + "GL_SGIX_icc_texture", +#endif +#ifdef GL_SGIX_igloo_interface + "GL_SGIX_igloo_interface", +#endif +#ifdef GL_SGIX_image_compression + "GL_SGIX_image_compression", +#endif +#ifdef GL_SGIX_impact_pixel_texture + "GL_SGIX_impact_pixel_texture", +#endif +#ifdef GL_SGIX_instrument_error + "GL_SGIX_instrument_error", +#endif +#ifdef GL_SGIX_interlace + "GL_SGIX_interlace", +#endif +#ifdef GL_SGIX_ir_instrument1 + "GL_SGIX_ir_instrument1", +#endif +#ifdef GL_SGIX_line_quality_hint + "GL_SGIX_line_quality_hint", +#endif +#ifdef GL_SGIX_list_priority + "GL_SGIX_list_priority", +#endif +#ifdef GL_SGIX_mpeg1 + "GL_SGIX_mpeg1", +#endif +#ifdef GL_SGIX_mpeg2 + "GL_SGIX_mpeg2", +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + "GL_SGIX_nonlinear_lighting_pervertex", +#endif +#ifdef GL_SGIX_nurbs_eval + "GL_SGIX_nurbs_eval", +#endif +#ifdef GL_SGIX_occlusion_instrument + "GL_SGIX_occlusion_instrument", +#endif +#ifdef GL_SGIX_packed_6bytes + "GL_SGIX_packed_6bytes", +#endif +#ifdef GL_SGIX_pixel_texture + "GL_SGIX_pixel_texture", +#endif +#ifdef GL_SGIX_pixel_texture_bits + "GL_SGIX_pixel_texture_bits", +#endif +#ifdef GL_SGIX_pixel_texture_lod + "GL_SGIX_pixel_texture_lod", +#endif +#ifdef GL_SGIX_pixel_tiles + "GL_SGIX_pixel_tiles", +#endif +#ifdef GL_SGIX_polynomial_ffd + "GL_SGIX_polynomial_ffd", +#endif +#ifdef GL_SGIX_quad_mesh + "GL_SGIX_quad_mesh", +#endif +#ifdef GL_SGIX_reference_plane + "GL_SGIX_reference_plane", +#endif +#ifdef GL_SGIX_resample + "GL_SGIX_resample", +#endif +#ifdef GL_SGIX_scalebias_hint + "GL_SGIX_scalebias_hint", +#endif +#ifdef GL_SGIX_shadow + "GL_SGIX_shadow", +#endif +#ifdef GL_SGIX_shadow_ambient + "GL_SGIX_shadow_ambient", +#endif +#ifdef GL_SGIX_slim + "GL_SGIX_slim", +#endif +#ifdef GL_SGIX_spotlight_cutoff + "GL_SGIX_spotlight_cutoff", +#endif +#ifdef GL_SGIX_sprite + "GL_SGIX_sprite", +#endif +#ifdef GL_SGIX_subdiv_patch + "GL_SGIX_subdiv_patch", +#endif +#ifdef GL_SGIX_subsample + "GL_SGIX_subsample", +#endif +#ifdef GL_SGIX_tag_sample_buffer + "GL_SGIX_tag_sample_buffer", +#endif +#ifdef GL_SGIX_texture_add_env + "GL_SGIX_texture_add_env", +#endif +#ifdef GL_SGIX_texture_coordinate_clamp + "GL_SGIX_texture_coordinate_clamp", +#endif +#ifdef GL_SGIX_texture_lod_bias + "GL_SGIX_texture_lod_bias", +#endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + "GL_SGIX_texture_mipmap_anisotropic", +#endif +#ifdef GL_SGIX_texture_multi_buffer + "GL_SGIX_texture_multi_buffer", +#endif +#ifdef GL_SGIX_texture_phase + "GL_SGIX_texture_phase", +#endif +#ifdef GL_SGIX_texture_range + "GL_SGIX_texture_range", +#endif +#ifdef GL_SGIX_texture_scale_bias + "GL_SGIX_texture_scale_bias", +#endif +#ifdef GL_SGIX_texture_supersample + "GL_SGIX_texture_supersample", +#endif +#ifdef GL_SGIX_vector_ops + "GL_SGIX_vector_ops", +#endif +#ifdef GL_SGIX_vertex_array_object + "GL_SGIX_vertex_array_object", +#endif +#ifdef GL_SGIX_vertex_preclip + "GL_SGIX_vertex_preclip", +#endif +#ifdef GL_SGIX_vertex_preclip_hint + "GL_SGIX_vertex_preclip_hint", +#endif +#ifdef GL_SGIX_ycrcb + "GL_SGIX_ycrcb", +#endif +#ifdef GL_SGIX_ycrcb_subsample + "GL_SGIX_ycrcb_subsample", +#endif +#ifdef GL_SGIX_ycrcba + "GL_SGIX_ycrcba", +#endif +#ifdef GL_SGI_color_matrix + "GL_SGI_color_matrix", +#endif +#ifdef GL_SGI_color_table + "GL_SGI_color_table", +#endif +#ifdef GL_SGI_complex + "GL_SGI_complex", +#endif +#ifdef GL_SGI_complex_type + "GL_SGI_complex_type", +#endif +#ifdef GL_SGI_fft + "GL_SGI_fft", +#endif +#ifdef GL_SGI_texture_color_table + "GL_SGI_texture_color_table", +#endif +#ifdef GL_SUNX_constant_data + "GL_SUNX_constant_data", +#endif +#ifdef GL_SUN_convolution_border_modes + "GL_SUN_convolution_border_modes", +#endif +#ifdef GL_SUN_global_alpha + "GL_SUN_global_alpha", +#endif +#ifdef GL_SUN_mesh_array + "GL_SUN_mesh_array", +#endif +#ifdef GL_SUN_read_video_pixels + "GL_SUN_read_video_pixels", +#endif +#ifdef GL_SUN_slice_accum + "GL_SUN_slice_accum", +#endif +#ifdef GL_SUN_triangle_list + "GL_SUN_triangle_list", +#endif +#ifdef GL_SUN_vertex + "GL_SUN_vertex", +#endif +#ifdef GL_VERSION_1_2 + "GL_VERSION_1_2", +#endif +#ifdef GL_VERSION_1_2_1 + "GL_VERSION_1_2_1", +#endif +#ifdef GL_VERSION_1_3 + "GL_VERSION_1_3", +#endif +#ifdef GL_VERSION_1_4 + "GL_VERSION_1_4", +#endif +#ifdef GL_VERSION_1_5 + "GL_VERSION_1_5", +#endif +#ifdef GL_VERSION_2_0 + "GL_VERSION_2_0", +#endif +#ifdef GL_VERSION_2_1 + "GL_VERSION_2_1", +#endif +#ifdef GL_VERSION_3_0 + "GL_VERSION_3_0", +#endif +#ifdef GL_VERSION_3_1 + "GL_VERSION_3_1", +#endif +#ifdef GL_VERSION_3_2 + "GL_VERSION_3_2", +#endif +#ifdef GL_VERSION_3_3 + "GL_VERSION_3_3", +#endif +#ifdef GL_VERSION_4_0 + "GL_VERSION_4_0", +#endif +#ifdef GL_VERSION_4_1 + "GL_VERSION_4_1", +#endif +#ifdef GL_VERSION_4_2 + "GL_VERSION_4_2", +#endif +#ifdef GL_VERSION_4_3 + "GL_VERSION_4_3", +#endif +#ifdef GL_VERSION_4_4 + "GL_VERSION_4_4", +#endif +#ifdef GL_VERSION_4_5 + "GL_VERSION_4_5", +#endif +#ifdef GL_VERSION_4_6 + "GL_VERSION_4_6", +#endif +#ifdef GL_VIV_shader_binary + "GL_VIV_shader_binary", +#endif +#ifdef GL_WIN_phong_shading + "GL_WIN_phong_shading", +#endif +#ifdef GL_WIN_scene_markerXXX + "GL_WIN_scene_markerXXX", +#endif +#ifdef GL_WIN_specular_fog + "GL_WIN_specular_fog", +#endif +#ifdef GL_WIN_swap_hint + "GL_WIN_swap_hint", +#endif + NULL +}; + + +/* Detected in the extension string or strings */ +static GLboolean _glewExtensionString[931]; +/* Detected via extension string or experimental mode */ +static GLboolean* _glewExtensionEnabled[] = { +#ifdef GL_3DFX_multisample + &__GLEW_3DFX_multisample, +#endif +#ifdef GL_3DFX_tbuffer + &__GLEW_3DFX_tbuffer, +#endif +#ifdef GL_3DFX_texture_compression_FXT1 + &__GLEW_3DFX_texture_compression_FXT1, +#endif +#ifdef GL_AMD_blend_minmax_factor + &__GLEW_AMD_blend_minmax_factor, +#endif +#ifdef GL_AMD_compressed_3DC_texture + &__GLEW_AMD_compressed_3DC_texture, +#endif +#ifdef GL_AMD_compressed_ATC_texture + &__GLEW_AMD_compressed_ATC_texture, +#endif +#ifdef GL_AMD_conservative_depth + &__GLEW_AMD_conservative_depth, +#endif +#ifdef GL_AMD_debug_output + &__GLEW_AMD_debug_output, +#endif +#ifdef GL_AMD_depth_clamp_separate + &__GLEW_AMD_depth_clamp_separate, +#endif +#ifdef GL_AMD_draw_buffers_blend + &__GLEW_AMD_draw_buffers_blend, +#endif +#ifdef GL_AMD_framebuffer_multisample_advanced + &__GLEW_AMD_framebuffer_multisample_advanced, +#endif +#ifdef GL_AMD_framebuffer_sample_positions + &__GLEW_AMD_framebuffer_sample_positions, +#endif +#ifdef GL_AMD_gcn_shader + &__GLEW_AMD_gcn_shader, +#endif +#ifdef GL_AMD_gpu_shader_half_float + &__GLEW_AMD_gpu_shader_half_float, +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + &__GLEW_AMD_gpu_shader_half_float_fetch, +#endif +#ifdef GL_AMD_gpu_shader_int16 + &__GLEW_AMD_gpu_shader_int16, +#endif +#ifdef GL_AMD_gpu_shader_int64 + &__GLEW_AMD_gpu_shader_int64, +#endif +#ifdef GL_AMD_interleaved_elements + &__GLEW_AMD_interleaved_elements, +#endif +#ifdef GL_AMD_multi_draw_indirect + &__GLEW_AMD_multi_draw_indirect, +#endif +#ifdef GL_AMD_name_gen_delete + &__GLEW_AMD_name_gen_delete, +#endif +#ifdef GL_AMD_occlusion_query_event + &__GLEW_AMD_occlusion_query_event, +#endif +#ifdef GL_AMD_performance_monitor + &__GLEW_AMD_performance_monitor, +#endif +#ifdef GL_AMD_pinned_memory + &__GLEW_AMD_pinned_memory, +#endif +#ifdef GL_AMD_program_binary_Z400 + &__GLEW_AMD_program_binary_Z400, +#endif +#ifdef GL_AMD_query_buffer_object + &__GLEW_AMD_query_buffer_object, +#endif +#ifdef GL_AMD_sample_positions + &__GLEW_AMD_sample_positions, +#endif +#ifdef GL_AMD_seamless_cubemap_per_texture + &__GLEW_AMD_seamless_cubemap_per_texture, +#endif +#ifdef GL_AMD_shader_atomic_counter_ops + &__GLEW_AMD_shader_atomic_counter_ops, +#endif +#ifdef GL_AMD_shader_ballot + &__GLEW_AMD_shader_ballot, +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + &__GLEW_AMD_shader_explicit_vertex_parameter, +#endif +#ifdef GL_AMD_shader_image_load_store_lod + &__GLEW_AMD_shader_image_load_store_lod, +#endif +#ifdef GL_AMD_shader_stencil_export + &__GLEW_AMD_shader_stencil_export, +#endif +#ifdef GL_AMD_shader_stencil_value_export + &__GLEW_AMD_shader_stencil_value_export, +#endif +#ifdef GL_AMD_shader_trinary_minmax + &__GLEW_AMD_shader_trinary_minmax, +#endif +#ifdef GL_AMD_sparse_texture + &__GLEW_AMD_sparse_texture, +#endif +#ifdef GL_AMD_stencil_operation_extended + &__GLEW_AMD_stencil_operation_extended, +#endif +#ifdef GL_AMD_texture_gather_bias_lod + &__GLEW_AMD_texture_gather_bias_lod, +#endif +#ifdef GL_AMD_texture_texture4 + &__GLEW_AMD_texture_texture4, +#endif +#ifdef GL_AMD_transform_feedback3_lines_triangles + &__GLEW_AMD_transform_feedback3_lines_triangles, +#endif +#ifdef GL_AMD_transform_feedback4 + &__GLEW_AMD_transform_feedback4, +#endif +#ifdef GL_AMD_vertex_shader_layer + &__GLEW_AMD_vertex_shader_layer, +#endif +#ifdef GL_AMD_vertex_shader_tessellator + &__GLEW_AMD_vertex_shader_tessellator, +#endif +#ifdef GL_AMD_vertex_shader_viewport_index + &__GLEW_AMD_vertex_shader_viewport_index, +#endif +#ifdef GL_ANDROID_extension_pack_es31a + &__GLEW_ANDROID_extension_pack_es31a, +#endif +#ifdef GL_ANGLE_depth_texture + &__GLEW_ANGLE_depth_texture, +#endif +#ifdef GL_ANGLE_framebuffer_blit + &__GLEW_ANGLE_framebuffer_blit, +#endif +#ifdef GL_ANGLE_framebuffer_multisample + &__GLEW_ANGLE_framebuffer_multisample, +#endif +#ifdef GL_ANGLE_instanced_arrays + &__GLEW_ANGLE_instanced_arrays, +#endif +#ifdef GL_ANGLE_pack_reverse_row_order + &__GLEW_ANGLE_pack_reverse_row_order, +#endif +#ifdef GL_ANGLE_program_binary + &__GLEW_ANGLE_program_binary, +#endif +#ifdef GL_ANGLE_texture_compression_dxt1 + &__GLEW_ANGLE_texture_compression_dxt1, +#endif +#ifdef GL_ANGLE_texture_compression_dxt3 + &__GLEW_ANGLE_texture_compression_dxt3, +#endif +#ifdef GL_ANGLE_texture_compression_dxt5 + &__GLEW_ANGLE_texture_compression_dxt5, +#endif +#ifdef GL_ANGLE_texture_usage + &__GLEW_ANGLE_texture_usage, +#endif +#ifdef GL_ANGLE_timer_query + &__GLEW_ANGLE_timer_query, +#endif +#ifdef GL_ANGLE_translated_shader_source + &__GLEW_ANGLE_translated_shader_source, +#endif +#ifdef GL_APPLE_aux_depth_stencil + &__GLEW_APPLE_aux_depth_stencil, +#endif +#ifdef GL_APPLE_client_storage + &__GLEW_APPLE_client_storage, +#endif +#ifdef GL_APPLE_clip_distance + &__GLEW_APPLE_clip_distance, +#endif +#ifdef GL_APPLE_color_buffer_packed_float + &__GLEW_APPLE_color_buffer_packed_float, +#endif +#ifdef GL_APPLE_copy_texture_levels + &__GLEW_APPLE_copy_texture_levels, +#endif +#ifdef GL_APPLE_element_array + &__GLEW_APPLE_element_array, +#endif +#ifdef GL_APPLE_fence + &__GLEW_APPLE_fence, +#endif +#ifdef GL_APPLE_float_pixels + &__GLEW_APPLE_float_pixels, +#endif +#ifdef GL_APPLE_flush_buffer_range + &__GLEW_APPLE_flush_buffer_range, +#endif +#ifdef GL_APPLE_framebuffer_multisample + &__GLEW_APPLE_framebuffer_multisample, +#endif +#ifdef GL_APPLE_object_purgeable + &__GLEW_APPLE_object_purgeable, +#endif +#ifdef GL_APPLE_pixel_buffer + &__GLEW_APPLE_pixel_buffer, +#endif +#ifdef GL_APPLE_rgb_422 + &__GLEW_APPLE_rgb_422, +#endif +#ifdef GL_APPLE_row_bytes + &__GLEW_APPLE_row_bytes, +#endif +#ifdef GL_APPLE_specular_vector + &__GLEW_APPLE_specular_vector, +#endif +#ifdef GL_APPLE_sync + &__GLEW_APPLE_sync, +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + &__GLEW_APPLE_texture_2D_limited_npot, +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + &__GLEW_APPLE_texture_format_BGRA8888, +#endif +#ifdef GL_APPLE_texture_max_level + &__GLEW_APPLE_texture_max_level, +#endif +#ifdef GL_APPLE_texture_packed_float + &__GLEW_APPLE_texture_packed_float, +#endif +#ifdef GL_APPLE_texture_range + &__GLEW_APPLE_texture_range, +#endif +#ifdef GL_APPLE_transform_hint + &__GLEW_APPLE_transform_hint, +#endif +#ifdef GL_APPLE_vertex_array_object + &__GLEW_APPLE_vertex_array_object, +#endif +#ifdef GL_APPLE_vertex_array_range + &__GLEW_APPLE_vertex_array_range, +#endif +#ifdef GL_APPLE_vertex_program_evaluators + &__GLEW_APPLE_vertex_program_evaluators, +#endif +#ifdef GL_APPLE_ycbcr_422 + &__GLEW_APPLE_ycbcr_422, +#endif +#ifdef GL_ARB_ES2_compatibility + &__GLEW_ARB_ES2_compatibility, +#endif +#ifdef GL_ARB_ES3_1_compatibility + &__GLEW_ARB_ES3_1_compatibility, +#endif +#ifdef GL_ARB_ES3_2_compatibility + &__GLEW_ARB_ES3_2_compatibility, +#endif +#ifdef GL_ARB_ES3_compatibility + &__GLEW_ARB_ES3_compatibility, +#endif +#ifdef GL_ARB_arrays_of_arrays + &__GLEW_ARB_arrays_of_arrays, +#endif +#ifdef GL_ARB_base_instance + &__GLEW_ARB_base_instance, +#endif +#ifdef GL_ARB_bindless_texture + &__GLEW_ARB_bindless_texture, +#endif +#ifdef GL_ARB_blend_func_extended + &__GLEW_ARB_blend_func_extended, +#endif +#ifdef GL_ARB_buffer_storage + &__GLEW_ARB_buffer_storage, +#endif +#ifdef GL_ARB_cl_event + &__GLEW_ARB_cl_event, +#endif +#ifdef GL_ARB_clear_buffer_object + &__GLEW_ARB_clear_buffer_object, +#endif +#ifdef GL_ARB_clear_texture + &__GLEW_ARB_clear_texture, +#endif +#ifdef GL_ARB_clip_control + &__GLEW_ARB_clip_control, +#endif +#ifdef GL_ARB_color_buffer_float + &__GLEW_ARB_color_buffer_float, +#endif +#ifdef GL_ARB_compatibility + &__GLEW_ARB_compatibility, +#endif +#ifdef GL_ARB_compressed_texture_pixel_storage + &__GLEW_ARB_compressed_texture_pixel_storage, +#endif +#ifdef GL_ARB_compute_shader + &__GLEW_ARB_compute_shader, +#endif +#ifdef GL_ARB_compute_variable_group_size + &__GLEW_ARB_compute_variable_group_size, +#endif +#ifdef GL_ARB_conditional_render_inverted + &__GLEW_ARB_conditional_render_inverted, +#endif +#ifdef GL_ARB_conservative_depth + &__GLEW_ARB_conservative_depth, +#endif +#ifdef GL_ARB_copy_buffer + &__GLEW_ARB_copy_buffer, +#endif +#ifdef GL_ARB_copy_image + &__GLEW_ARB_copy_image, +#endif +#ifdef GL_ARB_cull_distance + &__GLEW_ARB_cull_distance, +#endif +#ifdef GL_ARB_debug_output + &__GLEW_ARB_debug_output, +#endif +#ifdef GL_ARB_depth_buffer_float + &__GLEW_ARB_depth_buffer_float, +#endif +#ifdef GL_ARB_depth_clamp + &__GLEW_ARB_depth_clamp, +#endif +#ifdef GL_ARB_depth_texture + &__GLEW_ARB_depth_texture, +#endif +#ifdef GL_ARB_derivative_control + &__GLEW_ARB_derivative_control, +#endif +#ifdef GL_ARB_direct_state_access + &__GLEW_ARB_direct_state_access, +#endif +#ifdef GL_ARB_draw_buffers + &__GLEW_ARB_draw_buffers, +#endif +#ifdef GL_ARB_draw_buffers_blend + &__GLEW_ARB_draw_buffers_blend, +#endif +#ifdef GL_ARB_draw_elements_base_vertex + &__GLEW_ARB_draw_elements_base_vertex, +#endif +#ifdef GL_ARB_draw_indirect + &__GLEW_ARB_draw_indirect, +#endif +#ifdef GL_ARB_draw_instanced + &__GLEW_ARB_draw_instanced, +#endif +#ifdef GL_ARB_enhanced_layouts + &__GLEW_ARB_enhanced_layouts, +#endif +#ifdef GL_ARB_explicit_attrib_location + &__GLEW_ARB_explicit_attrib_location, +#endif +#ifdef GL_ARB_explicit_uniform_location + &__GLEW_ARB_explicit_uniform_location, +#endif +#ifdef GL_ARB_fragment_coord_conventions + &__GLEW_ARB_fragment_coord_conventions, +#endif +#ifdef GL_ARB_fragment_layer_viewport + &__GLEW_ARB_fragment_layer_viewport, +#endif +#ifdef GL_ARB_fragment_program + &__GLEW_ARB_fragment_program, +#endif +#ifdef GL_ARB_fragment_program_shadow + &__GLEW_ARB_fragment_program_shadow, +#endif +#ifdef GL_ARB_fragment_shader + &__GLEW_ARB_fragment_shader, +#endif +#ifdef GL_ARB_fragment_shader_interlock + &__GLEW_ARB_fragment_shader_interlock, +#endif +#ifdef GL_ARB_framebuffer_no_attachments + &__GLEW_ARB_framebuffer_no_attachments, +#endif +#ifdef GL_ARB_framebuffer_object + &__GLEW_ARB_framebuffer_object, +#endif +#ifdef GL_ARB_framebuffer_sRGB + &__GLEW_ARB_framebuffer_sRGB, +#endif +#ifdef GL_ARB_geometry_shader4 + &__GLEW_ARB_geometry_shader4, +#endif +#ifdef GL_ARB_get_program_binary + &__GLEW_ARB_get_program_binary, +#endif +#ifdef GL_ARB_get_texture_sub_image + &__GLEW_ARB_get_texture_sub_image, +#endif +#ifdef GL_ARB_gl_spirv + &__GLEW_ARB_gl_spirv, +#endif +#ifdef GL_ARB_gpu_shader5 + &__GLEW_ARB_gpu_shader5, +#endif +#ifdef GL_ARB_gpu_shader_fp64 + &__GLEW_ARB_gpu_shader_fp64, +#endif +#ifdef GL_ARB_gpu_shader_int64 + &__GLEW_ARB_gpu_shader_int64, +#endif +#ifdef GL_ARB_half_float_pixel + &__GLEW_ARB_half_float_pixel, +#endif +#ifdef GL_ARB_half_float_vertex + &__GLEW_ARB_half_float_vertex, +#endif +#ifdef GL_ARB_imaging + &__GLEW_ARB_imaging, +#endif +#ifdef GL_ARB_indirect_parameters + &__GLEW_ARB_indirect_parameters, +#endif +#ifdef GL_ARB_instanced_arrays + &__GLEW_ARB_instanced_arrays, +#endif +#ifdef GL_ARB_internalformat_query + &__GLEW_ARB_internalformat_query, +#endif +#ifdef GL_ARB_internalformat_query2 + &__GLEW_ARB_internalformat_query2, +#endif +#ifdef GL_ARB_invalidate_subdata + &__GLEW_ARB_invalidate_subdata, +#endif +#ifdef GL_ARB_map_buffer_alignment + &__GLEW_ARB_map_buffer_alignment, +#endif +#ifdef GL_ARB_map_buffer_range + &__GLEW_ARB_map_buffer_range, +#endif +#ifdef GL_ARB_matrix_palette + &__GLEW_ARB_matrix_palette, +#endif +#ifdef GL_ARB_multi_bind + &__GLEW_ARB_multi_bind, +#endif +#ifdef GL_ARB_multi_draw_indirect + &__GLEW_ARB_multi_draw_indirect, +#endif +#ifdef GL_ARB_multisample + &__GLEW_ARB_multisample, +#endif +#ifdef GL_ARB_multitexture + &__GLEW_ARB_multitexture, +#endif +#ifdef GL_ARB_occlusion_query + &__GLEW_ARB_occlusion_query, +#endif +#ifdef GL_ARB_occlusion_query2 + &__GLEW_ARB_occlusion_query2, +#endif +#ifdef GL_ARB_parallel_shader_compile + &__GLEW_ARB_parallel_shader_compile, +#endif +#ifdef GL_ARB_pipeline_statistics_query + &__GLEW_ARB_pipeline_statistics_query, +#endif +#ifdef GL_ARB_pixel_buffer_object + &__GLEW_ARB_pixel_buffer_object, +#endif +#ifdef GL_ARB_point_parameters + &__GLEW_ARB_point_parameters, +#endif +#ifdef GL_ARB_point_sprite + &__GLEW_ARB_point_sprite, +#endif +#ifdef GL_ARB_polygon_offset_clamp + &__GLEW_ARB_polygon_offset_clamp, +#endif +#ifdef GL_ARB_post_depth_coverage + &__GLEW_ARB_post_depth_coverage, +#endif +#ifdef GL_ARB_program_interface_query + &__GLEW_ARB_program_interface_query, +#endif +#ifdef GL_ARB_provoking_vertex + &__GLEW_ARB_provoking_vertex, +#endif +#ifdef GL_ARB_query_buffer_object + &__GLEW_ARB_query_buffer_object, +#endif +#ifdef GL_ARB_robust_buffer_access_behavior + &__GLEW_ARB_robust_buffer_access_behavior, +#endif +#ifdef GL_ARB_robustness + &__GLEW_ARB_robustness, +#endif +#ifdef GL_ARB_robustness_application_isolation + &__GLEW_ARB_robustness_application_isolation, +#endif +#ifdef GL_ARB_robustness_share_group_isolation + &__GLEW_ARB_robustness_share_group_isolation, +#endif +#ifdef GL_ARB_sample_locations + &__GLEW_ARB_sample_locations, +#endif +#ifdef GL_ARB_sample_shading + &__GLEW_ARB_sample_shading, +#endif +#ifdef GL_ARB_sampler_objects + &__GLEW_ARB_sampler_objects, +#endif +#ifdef GL_ARB_seamless_cube_map + &__GLEW_ARB_seamless_cube_map, +#endif +#ifdef GL_ARB_seamless_cubemap_per_texture + &__GLEW_ARB_seamless_cubemap_per_texture, +#endif +#ifdef GL_ARB_separate_shader_objects + &__GLEW_ARB_separate_shader_objects, +#endif +#ifdef GL_ARB_shader_atomic_counter_ops + &__GLEW_ARB_shader_atomic_counter_ops, +#endif +#ifdef GL_ARB_shader_atomic_counters + &__GLEW_ARB_shader_atomic_counters, +#endif +#ifdef GL_ARB_shader_ballot + &__GLEW_ARB_shader_ballot, +#endif +#ifdef GL_ARB_shader_bit_encoding + &__GLEW_ARB_shader_bit_encoding, +#endif +#ifdef GL_ARB_shader_clock + &__GLEW_ARB_shader_clock, +#endif +#ifdef GL_ARB_shader_draw_parameters + &__GLEW_ARB_shader_draw_parameters, +#endif +#ifdef GL_ARB_shader_group_vote + &__GLEW_ARB_shader_group_vote, +#endif +#ifdef GL_ARB_shader_image_load_store + &__GLEW_ARB_shader_image_load_store, +#endif +#ifdef GL_ARB_shader_image_size + &__GLEW_ARB_shader_image_size, +#endif +#ifdef GL_ARB_shader_objects + &__GLEW_ARB_shader_objects, +#endif +#ifdef GL_ARB_shader_precision + &__GLEW_ARB_shader_precision, +#endif +#ifdef GL_ARB_shader_stencil_export + &__GLEW_ARB_shader_stencil_export, +#endif +#ifdef GL_ARB_shader_storage_buffer_object + &__GLEW_ARB_shader_storage_buffer_object, +#endif +#ifdef GL_ARB_shader_subroutine + &__GLEW_ARB_shader_subroutine, +#endif +#ifdef GL_ARB_shader_texture_image_samples + &__GLEW_ARB_shader_texture_image_samples, +#endif +#ifdef GL_ARB_shader_texture_lod + &__GLEW_ARB_shader_texture_lod, +#endif +#ifdef GL_ARB_shader_viewport_layer_array + &__GLEW_ARB_shader_viewport_layer_array, +#endif +#ifdef GL_ARB_shading_language_100 + &__GLEW_ARB_shading_language_100, +#endif +#ifdef GL_ARB_shading_language_420pack + &__GLEW_ARB_shading_language_420pack, +#endif +#ifdef GL_ARB_shading_language_include + &__GLEW_ARB_shading_language_include, +#endif +#ifdef GL_ARB_shading_language_packing + &__GLEW_ARB_shading_language_packing, +#endif +#ifdef GL_ARB_shadow + &__GLEW_ARB_shadow, +#endif +#ifdef GL_ARB_shadow_ambient + &__GLEW_ARB_shadow_ambient, +#endif +#ifdef GL_ARB_sparse_buffer + &__GLEW_ARB_sparse_buffer, +#endif +#ifdef GL_ARB_sparse_texture + &__GLEW_ARB_sparse_texture, +#endif +#ifdef GL_ARB_sparse_texture2 + &__GLEW_ARB_sparse_texture2, +#endif +#ifdef GL_ARB_sparse_texture_clamp + &__GLEW_ARB_sparse_texture_clamp, +#endif +#ifdef GL_ARB_spirv_extensions + &__GLEW_ARB_spirv_extensions, +#endif +#ifdef GL_ARB_stencil_texturing + &__GLEW_ARB_stencil_texturing, +#endif +#ifdef GL_ARB_sync + &__GLEW_ARB_sync, +#endif +#ifdef GL_ARB_tessellation_shader + &__GLEW_ARB_tessellation_shader, +#endif +#ifdef GL_ARB_texture_barrier + &__GLEW_ARB_texture_barrier, +#endif +#ifdef GL_ARB_texture_border_clamp + &__GLEW_ARB_texture_border_clamp, +#endif +#ifdef GL_ARB_texture_buffer_object + &__GLEW_ARB_texture_buffer_object, +#endif +#ifdef GL_ARB_texture_buffer_object_rgb32 + &__GLEW_ARB_texture_buffer_object_rgb32, +#endif +#ifdef GL_ARB_texture_buffer_range + &__GLEW_ARB_texture_buffer_range, +#endif +#ifdef GL_ARB_texture_compression + &__GLEW_ARB_texture_compression, +#endif +#ifdef GL_ARB_texture_compression_bptc + &__GLEW_ARB_texture_compression_bptc, +#endif +#ifdef GL_ARB_texture_compression_rgtc + &__GLEW_ARB_texture_compression_rgtc, +#endif +#ifdef GL_ARB_texture_cube_map + &__GLEW_ARB_texture_cube_map, +#endif +#ifdef GL_ARB_texture_cube_map_array + &__GLEW_ARB_texture_cube_map_array, +#endif +#ifdef GL_ARB_texture_env_add + &__GLEW_ARB_texture_env_add, +#endif +#ifdef GL_ARB_texture_env_combine + &__GLEW_ARB_texture_env_combine, +#endif +#ifdef GL_ARB_texture_env_crossbar + &__GLEW_ARB_texture_env_crossbar, +#endif +#ifdef GL_ARB_texture_env_dot3 + &__GLEW_ARB_texture_env_dot3, +#endif +#ifdef GL_ARB_texture_filter_anisotropic + &__GLEW_ARB_texture_filter_anisotropic, +#endif +#ifdef GL_ARB_texture_filter_minmax + &__GLEW_ARB_texture_filter_minmax, +#endif +#ifdef GL_ARB_texture_float + &__GLEW_ARB_texture_float, +#endif +#ifdef GL_ARB_texture_gather + &__GLEW_ARB_texture_gather, +#endif +#ifdef GL_ARB_texture_mirror_clamp_to_edge + &__GLEW_ARB_texture_mirror_clamp_to_edge, +#endif +#ifdef GL_ARB_texture_mirrored_repeat + &__GLEW_ARB_texture_mirrored_repeat, +#endif +#ifdef GL_ARB_texture_multisample + &__GLEW_ARB_texture_multisample, +#endif +#ifdef GL_ARB_texture_non_power_of_two + &__GLEW_ARB_texture_non_power_of_two, +#endif +#ifdef GL_ARB_texture_query_levels + &__GLEW_ARB_texture_query_levels, +#endif +#ifdef GL_ARB_texture_query_lod + &__GLEW_ARB_texture_query_lod, +#endif +#ifdef GL_ARB_texture_rectangle + &__GLEW_ARB_texture_rectangle, +#endif +#ifdef GL_ARB_texture_rg + &__GLEW_ARB_texture_rg, +#endif +#ifdef GL_ARB_texture_rgb10_a2ui + &__GLEW_ARB_texture_rgb10_a2ui, +#endif +#ifdef GL_ARB_texture_stencil8 + &__GLEW_ARB_texture_stencil8, +#endif +#ifdef GL_ARB_texture_storage + &__GLEW_ARB_texture_storage, +#endif +#ifdef GL_ARB_texture_storage_multisample + &__GLEW_ARB_texture_storage_multisample, +#endif +#ifdef GL_ARB_texture_swizzle + &__GLEW_ARB_texture_swizzle, +#endif +#ifdef GL_ARB_texture_view + &__GLEW_ARB_texture_view, +#endif +#ifdef GL_ARB_timer_query + &__GLEW_ARB_timer_query, +#endif +#ifdef GL_ARB_transform_feedback2 + &__GLEW_ARB_transform_feedback2, +#endif +#ifdef GL_ARB_transform_feedback3 + &__GLEW_ARB_transform_feedback3, +#endif +#ifdef GL_ARB_transform_feedback_instanced + &__GLEW_ARB_transform_feedback_instanced, +#endif +#ifdef GL_ARB_transform_feedback_overflow_query + &__GLEW_ARB_transform_feedback_overflow_query, +#endif +#ifdef GL_ARB_transpose_matrix + &__GLEW_ARB_transpose_matrix, +#endif +#ifdef GL_ARB_uniform_buffer_object + &__GLEW_ARB_uniform_buffer_object, +#endif +#ifdef GL_ARB_vertex_array_bgra + &__GLEW_ARB_vertex_array_bgra, +#endif +#ifdef GL_ARB_vertex_array_object + &__GLEW_ARB_vertex_array_object, +#endif +#ifdef GL_ARB_vertex_attrib_64bit + &__GLEW_ARB_vertex_attrib_64bit, +#endif +#ifdef GL_ARB_vertex_attrib_binding + &__GLEW_ARB_vertex_attrib_binding, +#endif +#ifdef GL_ARB_vertex_blend + &__GLEW_ARB_vertex_blend, +#endif +#ifdef GL_ARB_vertex_buffer_object + &__GLEW_ARB_vertex_buffer_object, +#endif +#ifdef GL_ARB_vertex_program + &__GLEW_ARB_vertex_program, +#endif +#ifdef GL_ARB_vertex_shader + &__GLEW_ARB_vertex_shader, +#endif +#ifdef GL_ARB_vertex_type_10f_11f_11f_rev + &__GLEW_ARB_vertex_type_10f_11f_11f_rev, +#endif +#ifdef GL_ARB_vertex_type_2_10_10_10_rev + &__GLEW_ARB_vertex_type_2_10_10_10_rev, +#endif +#ifdef GL_ARB_viewport_array + &__GLEW_ARB_viewport_array, +#endif +#ifdef GL_ARB_window_pos + &__GLEW_ARB_window_pos, +#endif +#ifdef GL_ARM_mali_program_binary + &__GLEW_ARM_mali_program_binary, +#endif +#ifdef GL_ARM_mali_shader_binary + &__GLEW_ARM_mali_shader_binary, +#endif +#ifdef GL_ARM_rgba8 + &__GLEW_ARM_rgba8, +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + &__GLEW_ARM_shader_framebuffer_fetch, +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + &__GLEW_ARM_shader_framebuffer_fetch_depth_stencil, +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + &__GLEW_ARM_texture_unnormalized_coordinates, +#endif +#ifdef GL_ATIX_point_sprites + &__GLEW_ATIX_point_sprites, +#endif +#ifdef GL_ATIX_texture_env_combine3 + &__GLEW_ATIX_texture_env_combine3, +#endif +#ifdef GL_ATIX_texture_env_route + &__GLEW_ATIX_texture_env_route, +#endif +#ifdef GL_ATIX_vertex_shader_output_point_size + &__GLEW_ATIX_vertex_shader_output_point_size, +#endif +#ifdef GL_ATI_draw_buffers + &__GLEW_ATI_draw_buffers, +#endif +#ifdef GL_ATI_element_array + &__GLEW_ATI_element_array, +#endif +#ifdef GL_ATI_envmap_bumpmap + &__GLEW_ATI_envmap_bumpmap, +#endif +#ifdef GL_ATI_fragment_shader + &__GLEW_ATI_fragment_shader, +#endif +#ifdef GL_ATI_map_object_buffer + &__GLEW_ATI_map_object_buffer, +#endif +#ifdef GL_ATI_meminfo + &__GLEW_ATI_meminfo, +#endif +#ifdef GL_ATI_pn_triangles + &__GLEW_ATI_pn_triangles, +#endif +#ifdef GL_ATI_separate_stencil + &__GLEW_ATI_separate_stencil, +#endif +#ifdef GL_ATI_shader_texture_lod + &__GLEW_ATI_shader_texture_lod, +#endif +#ifdef GL_ATI_text_fragment_shader + &__GLEW_ATI_text_fragment_shader, +#endif +#ifdef GL_ATI_texture_compression_3dc + &__GLEW_ATI_texture_compression_3dc, +#endif +#ifdef GL_ATI_texture_env_combine3 + &__GLEW_ATI_texture_env_combine3, +#endif +#ifdef GL_ATI_texture_float + &__GLEW_ATI_texture_float, +#endif +#ifdef GL_ATI_texture_mirror_once + &__GLEW_ATI_texture_mirror_once, +#endif +#ifdef GL_ATI_vertex_array_object + &__GLEW_ATI_vertex_array_object, +#endif +#ifdef GL_ATI_vertex_attrib_array_object + &__GLEW_ATI_vertex_attrib_array_object, +#endif +#ifdef GL_ATI_vertex_streams + &__GLEW_ATI_vertex_streams, +#endif +#ifdef GL_DMP_program_binary + &__GLEW_DMP_program_binary, +#endif +#ifdef GL_DMP_shader_binary + &__GLEW_DMP_shader_binary, +#endif +#ifdef GL_EXT_422_pixels + &__GLEW_EXT_422_pixels, +#endif +#ifdef GL_EXT_Cg_shader + &__GLEW_EXT_Cg_shader, +#endif +#ifdef GL_EXT_EGL_image_array + &__GLEW_EXT_EGL_image_array, +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + &__GLEW_EXT_EGL_image_external_wrap_modes, +#endif +#ifdef GL_EXT_EGL_image_storage + &__GLEW_EXT_EGL_image_storage, +#endif +#ifdef GL_EXT_EGL_sync + &__GLEW_EXT_EGL_sync, +#endif +#ifdef GL_EXT_YUV_target + &__GLEW_EXT_YUV_target, +#endif +#ifdef GL_EXT_abgr + &__GLEW_EXT_abgr, +#endif +#ifdef GL_EXT_base_instance + &__GLEW_EXT_base_instance, +#endif +#ifdef GL_EXT_bgra + &__GLEW_EXT_bgra, +#endif +#ifdef GL_EXT_bindable_uniform + &__GLEW_EXT_bindable_uniform, +#endif +#ifdef GL_EXT_blend_color + &__GLEW_EXT_blend_color, +#endif +#ifdef GL_EXT_blend_equation_separate + &__GLEW_EXT_blend_equation_separate, +#endif +#ifdef GL_EXT_blend_func_extended + &__GLEW_EXT_blend_func_extended, +#endif +#ifdef GL_EXT_blend_func_separate + &__GLEW_EXT_blend_func_separate, +#endif +#ifdef GL_EXT_blend_logic_op + &__GLEW_EXT_blend_logic_op, +#endif +#ifdef GL_EXT_blend_minmax + &__GLEW_EXT_blend_minmax, +#endif +#ifdef GL_EXT_blend_subtract + &__GLEW_EXT_blend_subtract, +#endif +#ifdef GL_EXT_buffer_storage + &__GLEW_EXT_buffer_storage, +#endif +#ifdef GL_EXT_clear_texture + &__GLEW_EXT_clear_texture, +#endif +#ifdef GL_EXT_clip_control + &__GLEW_EXT_clip_control, +#endif +#ifdef GL_EXT_clip_cull_distance + &__GLEW_EXT_clip_cull_distance, +#endif +#ifdef GL_EXT_clip_volume_hint + &__GLEW_EXT_clip_volume_hint, +#endif +#ifdef GL_EXT_cmyka + &__GLEW_EXT_cmyka, +#endif +#ifdef GL_EXT_color_buffer_float + &__GLEW_EXT_color_buffer_float, +#endif +#ifdef GL_EXT_color_buffer_half_float + &__GLEW_EXT_color_buffer_half_float, +#endif +#ifdef GL_EXT_color_subtable + &__GLEW_EXT_color_subtable, +#endif +#ifdef GL_EXT_compiled_vertex_array + &__GLEW_EXT_compiled_vertex_array, +#endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + &__GLEW_EXT_compressed_ETC1_RGB8_sub_texture, +#endif +#ifdef GL_EXT_conservative_depth + &__GLEW_EXT_conservative_depth, +#endif +#ifdef GL_EXT_convolution + &__GLEW_EXT_convolution, +#endif +#ifdef GL_EXT_coordinate_frame + &__GLEW_EXT_coordinate_frame, +#endif +#ifdef GL_EXT_copy_image + &__GLEW_EXT_copy_image, +#endif +#ifdef GL_EXT_copy_texture + &__GLEW_EXT_copy_texture, +#endif +#ifdef GL_EXT_cull_vertex + &__GLEW_EXT_cull_vertex, +#endif +#ifdef GL_EXT_debug_label + &__GLEW_EXT_debug_label, +#endif +#ifdef GL_EXT_debug_marker + &__GLEW_EXT_debug_marker, +#endif +#ifdef GL_EXT_depth_bounds_test + &__GLEW_EXT_depth_bounds_test, +#endif +#ifdef GL_EXT_depth_clamp + &__GLEW_EXT_depth_clamp, +#endif +#ifdef GL_EXT_direct_state_access + &__GLEW_EXT_direct_state_access, +#endif +#ifdef GL_EXT_discard_framebuffer + &__GLEW_EXT_discard_framebuffer, +#endif +#ifdef GL_EXT_disjoint_timer_query + &__GLEW_EXT_disjoint_timer_query, +#endif +#ifdef GL_EXT_draw_buffers + &__GLEW_EXT_draw_buffers, +#endif +#ifdef GL_EXT_draw_buffers2 + &__GLEW_EXT_draw_buffers2, +#endif +#ifdef GL_EXT_draw_buffers_indexed + &__GLEW_EXT_draw_buffers_indexed, +#endif +#ifdef GL_EXT_draw_elements_base_vertex + &__GLEW_EXT_draw_elements_base_vertex, +#endif +#ifdef GL_EXT_draw_instanced + &__GLEW_EXT_draw_instanced, +#endif +#ifdef GL_EXT_draw_range_elements + &__GLEW_EXT_draw_range_elements, +#endif +#ifdef GL_EXT_draw_transform_feedback + &__GLEW_EXT_draw_transform_feedback, +#endif +#ifdef GL_EXT_external_buffer + &__GLEW_EXT_external_buffer, +#endif +#ifdef GL_EXT_float_blend + &__GLEW_EXT_float_blend, +#endif +#ifdef GL_EXT_fog_coord + &__GLEW_EXT_fog_coord, +#endif +#ifdef GL_EXT_frag_depth + &__GLEW_EXT_frag_depth, +#endif +#ifdef GL_EXT_fragment_lighting + &__GLEW_EXT_fragment_lighting, +#endif +#ifdef GL_EXT_framebuffer_blit + &__GLEW_EXT_framebuffer_blit, +#endif +#ifdef GL_EXT_framebuffer_multisample + &__GLEW_EXT_framebuffer_multisample, +#endif +#ifdef GL_EXT_framebuffer_multisample_blit_scaled + &__GLEW_EXT_framebuffer_multisample_blit_scaled, +#endif +#ifdef GL_EXT_framebuffer_object + &__GLEW_EXT_framebuffer_object, +#endif +#ifdef GL_EXT_framebuffer_sRGB + &__GLEW_EXT_framebuffer_sRGB, +#endif +#ifdef GL_EXT_geometry_point_size + &__GLEW_EXT_geometry_point_size, +#endif +#ifdef GL_EXT_geometry_shader + &__GLEW_EXT_geometry_shader, +#endif +#ifdef GL_EXT_geometry_shader4 + &__GLEW_EXT_geometry_shader4, +#endif +#ifdef GL_EXT_gpu_program_parameters + &__GLEW_EXT_gpu_program_parameters, +#endif +#ifdef GL_EXT_gpu_shader4 + &__GLEW_EXT_gpu_shader4, +#endif +#ifdef GL_EXT_gpu_shader5 + &__GLEW_EXT_gpu_shader5, +#endif +#ifdef GL_EXT_histogram + &__GLEW_EXT_histogram, +#endif +#ifdef GL_EXT_index_array_formats + &__GLEW_EXT_index_array_formats, +#endif +#ifdef GL_EXT_index_func + &__GLEW_EXT_index_func, +#endif +#ifdef GL_EXT_index_material + &__GLEW_EXT_index_material, +#endif +#ifdef GL_EXT_index_texture + &__GLEW_EXT_index_texture, +#endif +#ifdef GL_EXT_instanced_arrays + &__GLEW_EXT_instanced_arrays, +#endif +#ifdef GL_EXT_light_texture + &__GLEW_EXT_light_texture, +#endif +#ifdef GL_EXT_map_buffer_range + &__GLEW_EXT_map_buffer_range, +#endif +#ifdef GL_EXT_memory_object + &__GLEW_EXT_memory_object, +#endif +#ifdef GL_EXT_memory_object_fd + &__GLEW_EXT_memory_object_fd, +#endif +#ifdef GL_EXT_memory_object_win32 + &__GLEW_EXT_memory_object_win32, +#endif +#ifdef GL_EXT_misc_attribute + &__GLEW_EXT_misc_attribute, +#endif +#ifdef GL_EXT_multi_draw_arrays + &__GLEW_EXT_multi_draw_arrays, +#endif +#ifdef GL_EXT_multi_draw_indirect + &__GLEW_EXT_multi_draw_indirect, +#endif +#ifdef GL_EXT_multiple_textures + &__GLEW_EXT_multiple_textures, +#endif +#ifdef GL_EXT_multisample + &__GLEW_EXT_multisample, +#endif +#ifdef GL_EXT_multisample_compatibility + &__GLEW_EXT_multisample_compatibility, +#endif +#ifdef GL_EXT_multisampled_render_to_texture + &__GLEW_EXT_multisampled_render_to_texture, +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + &__GLEW_EXT_multisampled_render_to_texture2, +#endif +#ifdef GL_EXT_multiview_draw_buffers + &__GLEW_EXT_multiview_draw_buffers, +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + &__GLEW_EXT_multiview_tessellation_geometry_shader, +#endif +#ifdef GL_EXT_multiview_texture_multisample + &__GLEW_EXT_multiview_texture_multisample, +#endif +#ifdef GL_EXT_multiview_timer_query + &__GLEW_EXT_multiview_timer_query, +#endif +#ifdef GL_EXT_occlusion_query_boolean + &__GLEW_EXT_occlusion_query_boolean, +#endif +#ifdef GL_EXT_packed_depth_stencil + &__GLEW_EXT_packed_depth_stencil, +#endif +#ifdef GL_EXT_packed_float + &__GLEW_EXT_packed_float, +#endif +#ifdef GL_EXT_packed_pixels + &__GLEW_EXT_packed_pixels, +#endif +#ifdef GL_EXT_paletted_texture + &__GLEW_EXT_paletted_texture, +#endif +#ifdef GL_EXT_pixel_buffer_object + &__GLEW_EXT_pixel_buffer_object, +#endif +#ifdef GL_EXT_pixel_transform + &__GLEW_EXT_pixel_transform, +#endif +#ifdef GL_EXT_pixel_transform_color_table + &__GLEW_EXT_pixel_transform_color_table, +#endif +#ifdef GL_EXT_point_parameters + &__GLEW_EXT_point_parameters, +#endif +#ifdef GL_EXT_polygon_offset + &__GLEW_EXT_polygon_offset, +#endif +#ifdef GL_EXT_polygon_offset_clamp + &__GLEW_EXT_polygon_offset_clamp, +#endif +#ifdef GL_EXT_post_depth_coverage + &__GLEW_EXT_post_depth_coverage, +#endif +#ifdef GL_EXT_primitive_bounding_box + &__GLEW_EXT_primitive_bounding_box, +#endif +#ifdef GL_EXT_protected_textures + &__GLEW_EXT_protected_textures, +#endif +#ifdef GL_EXT_provoking_vertex + &__GLEW_EXT_provoking_vertex, +#endif +#ifdef GL_EXT_pvrtc_sRGB + &__GLEW_EXT_pvrtc_sRGB, +#endif +#ifdef GL_EXT_raster_multisample + &__GLEW_EXT_raster_multisample, +#endif +#ifdef GL_EXT_read_format_bgra + &__GLEW_EXT_read_format_bgra, +#endif +#ifdef GL_EXT_render_snorm + &__GLEW_EXT_render_snorm, +#endif +#ifdef GL_EXT_rescale_normal + &__GLEW_EXT_rescale_normal, +#endif +#ifdef GL_EXT_robustness + &__GLEW_EXT_robustness, +#endif +#ifdef GL_EXT_sRGB + &__GLEW_EXT_sRGB, +#endif +#ifdef GL_EXT_sRGB_write_control + &__GLEW_EXT_sRGB_write_control, +#endif +#ifdef GL_EXT_scene_marker + &__GLEW_EXT_scene_marker, +#endif +#ifdef GL_EXT_secondary_color + &__GLEW_EXT_secondary_color, +#endif +#ifdef GL_EXT_semaphore + &__GLEW_EXT_semaphore, +#endif +#ifdef GL_EXT_semaphore_fd + &__GLEW_EXT_semaphore_fd, +#endif +#ifdef GL_EXT_semaphore_win32 + &__GLEW_EXT_semaphore_win32, +#endif +#ifdef GL_EXT_separate_shader_objects + &__GLEW_EXT_separate_shader_objects, +#endif +#ifdef GL_EXT_separate_specular_color + &__GLEW_EXT_separate_specular_color, +#endif +#ifdef GL_EXT_shader_framebuffer_fetch + &__GLEW_EXT_shader_framebuffer_fetch, +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + &__GLEW_EXT_shader_framebuffer_fetch_non_coherent, +#endif +#ifdef GL_EXT_shader_group_vote + &__GLEW_EXT_shader_group_vote, +#endif +#ifdef GL_EXT_shader_image_load_formatted + &__GLEW_EXT_shader_image_load_formatted, +#endif +#ifdef GL_EXT_shader_image_load_store + &__GLEW_EXT_shader_image_load_store, +#endif +#ifdef GL_EXT_shader_implicit_conversions + &__GLEW_EXT_shader_implicit_conversions, +#endif +#ifdef GL_EXT_shader_integer_mix + &__GLEW_EXT_shader_integer_mix, +#endif +#ifdef GL_EXT_shader_io_blocks + &__GLEW_EXT_shader_io_blocks, +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + &__GLEW_EXT_shader_non_constant_global_initializers, +#endif +#ifdef GL_EXT_shader_pixel_local_storage + &__GLEW_EXT_shader_pixel_local_storage, +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + &__GLEW_EXT_shader_pixel_local_storage2, +#endif +#ifdef GL_EXT_shader_texture_lod + &__GLEW_EXT_shader_texture_lod, +#endif +#ifdef GL_EXT_shadow_funcs + &__GLEW_EXT_shadow_funcs, +#endif +#ifdef GL_EXT_shadow_samplers + &__GLEW_EXT_shadow_samplers, +#endif +#ifdef GL_EXT_shared_texture_palette + &__GLEW_EXT_shared_texture_palette, +#endif +#ifdef GL_EXT_sparse_texture + &__GLEW_EXT_sparse_texture, +#endif +#ifdef GL_EXT_sparse_texture2 + &__GLEW_EXT_sparse_texture2, +#endif +#ifdef GL_EXT_static_vertex_array + &__GLEW_EXT_static_vertex_array, +#endif +#ifdef GL_EXT_stencil_clear_tag + &__GLEW_EXT_stencil_clear_tag, +#endif +#ifdef GL_EXT_stencil_two_side + &__GLEW_EXT_stencil_two_side, +#endif +#ifdef GL_EXT_stencil_wrap + &__GLEW_EXT_stencil_wrap, +#endif +#ifdef GL_EXT_subtexture + &__GLEW_EXT_subtexture, +#endif +#ifdef GL_EXT_tessellation_point_size + &__GLEW_EXT_tessellation_point_size, +#endif +#ifdef GL_EXT_tessellation_shader + &__GLEW_EXT_tessellation_shader, +#endif +#ifdef GL_EXT_texture + &__GLEW_EXT_texture, +#endif +#ifdef GL_EXT_texture3D + &__GLEW_EXT_texture3D, +#endif +#ifdef GL_EXT_texture_array + &__GLEW_EXT_texture_array, +#endif +#ifdef GL_EXT_texture_border_clamp + &__GLEW_EXT_texture_border_clamp, +#endif +#ifdef GL_EXT_texture_buffer + &__GLEW_EXT_texture_buffer, +#endif +#ifdef GL_EXT_texture_buffer_object + &__GLEW_EXT_texture_buffer_object, +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + &__GLEW_EXT_texture_compression_astc_decode_mode, +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + &__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5, +#endif +#ifdef GL_EXT_texture_compression_bptc + &__GLEW_EXT_texture_compression_bptc, +#endif +#ifdef GL_EXT_texture_compression_dxt1 + &__GLEW_EXT_texture_compression_dxt1, +#endif +#ifdef GL_EXT_texture_compression_latc + &__GLEW_EXT_texture_compression_latc, +#endif +#ifdef GL_EXT_texture_compression_rgtc + &__GLEW_EXT_texture_compression_rgtc, +#endif +#ifdef GL_EXT_texture_compression_s3tc + &__GLEW_EXT_texture_compression_s3tc, +#endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + &__GLEW_EXT_texture_compression_s3tc_srgb, +#endif +#ifdef GL_EXT_texture_cube_map + &__GLEW_EXT_texture_cube_map, +#endif +#ifdef GL_EXT_texture_cube_map_array + &__GLEW_EXT_texture_cube_map_array, +#endif +#ifdef GL_EXT_texture_edge_clamp + &__GLEW_EXT_texture_edge_clamp, +#endif +#ifdef GL_EXT_texture_env + &__GLEW_EXT_texture_env, +#endif +#ifdef GL_EXT_texture_env_add + &__GLEW_EXT_texture_env_add, +#endif +#ifdef GL_EXT_texture_env_combine + &__GLEW_EXT_texture_env_combine, +#endif +#ifdef GL_EXT_texture_env_dot3 + &__GLEW_EXT_texture_env_dot3, +#endif +#ifdef GL_EXT_texture_filter_anisotropic + &__GLEW_EXT_texture_filter_anisotropic, +#endif +#ifdef GL_EXT_texture_filter_minmax + &__GLEW_EXT_texture_filter_minmax, +#endif +#ifdef GL_EXT_texture_format_BGRA8888 + &__GLEW_EXT_texture_format_BGRA8888, +#endif +#ifdef GL_EXT_texture_format_sRGB_override + &__GLEW_EXT_texture_format_sRGB_override, +#endif +#ifdef GL_EXT_texture_integer + &__GLEW_EXT_texture_integer, +#endif +#ifdef GL_EXT_texture_lod_bias + &__GLEW_EXT_texture_lod_bias, +#endif +#ifdef GL_EXT_texture_mirror_clamp + &__GLEW_EXT_texture_mirror_clamp, +#endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + &__GLEW_EXT_texture_mirror_clamp_to_edge, +#endif +#ifdef GL_EXT_texture_norm16 + &__GLEW_EXT_texture_norm16, +#endif +#ifdef GL_EXT_texture_object + &__GLEW_EXT_texture_object, +#endif +#ifdef GL_EXT_texture_perturb_normal + &__GLEW_EXT_texture_perturb_normal, +#endif +#ifdef GL_EXT_texture_query_lod + &__GLEW_EXT_texture_query_lod, +#endif +#ifdef GL_EXT_texture_rectangle + &__GLEW_EXT_texture_rectangle, +#endif +#ifdef GL_EXT_texture_rg + &__GLEW_EXT_texture_rg, +#endif +#ifdef GL_EXT_texture_sRGB + &__GLEW_EXT_texture_sRGB, +#endif +#ifdef GL_EXT_texture_sRGB_R8 + &__GLEW_EXT_texture_sRGB_R8, +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + &__GLEW_EXT_texture_sRGB_RG8, +#endif +#ifdef GL_EXT_texture_sRGB_decode + &__GLEW_EXT_texture_sRGB_decode, +#endif +#ifdef GL_EXT_texture_shadow_lod + &__GLEW_EXT_texture_shadow_lod, +#endif +#ifdef GL_EXT_texture_shared_exponent + &__GLEW_EXT_texture_shared_exponent, +#endif +#ifdef GL_EXT_texture_snorm + &__GLEW_EXT_texture_snorm, +#endif +#ifdef GL_EXT_texture_storage + &__GLEW_EXT_texture_storage, +#endif +#ifdef GL_EXT_texture_swizzle + &__GLEW_EXT_texture_swizzle, +#endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + &__GLEW_EXT_texture_type_2_10_10_10_REV, +#endif +#ifdef GL_EXT_texture_view + &__GLEW_EXT_texture_view, +#endif +#ifdef GL_EXT_timer_query + &__GLEW_EXT_timer_query, +#endif +#ifdef GL_EXT_transform_feedback + &__GLEW_EXT_transform_feedback, +#endif +#ifdef GL_EXT_unpack_subimage + &__GLEW_EXT_unpack_subimage, +#endif +#ifdef GL_EXT_vertex_array + &__GLEW_EXT_vertex_array, +#endif +#ifdef GL_EXT_vertex_array_bgra + &__GLEW_EXT_vertex_array_bgra, +#endif +#ifdef GL_EXT_vertex_array_setXXX + &__GLEW_EXT_vertex_array_setXXX, +#endif +#ifdef GL_EXT_vertex_attrib_64bit + &__GLEW_EXT_vertex_attrib_64bit, +#endif +#ifdef GL_EXT_vertex_shader + &__GLEW_EXT_vertex_shader, +#endif +#ifdef GL_EXT_vertex_weighting + &__GLEW_EXT_vertex_weighting, +#endif +#ifdef GL_EXT_win32_keyed_mutex + &__GLEW_EXT_win32_keyed_mutex, +#endif +#ifdef GL_EXT_window_rectangles + &__GLEW_EXT_window_rectangles, +#endif +#ifdef GL_EXT_x11_sync_object + &__GLEW_EXT_x11_sync_object, +#endif +#ifdef GL_FJ_shader_binary_GCCSO + &__GLEW_FJ_shader_binary_GCCSO, +#endif +#ifdef GL_GREMEDY_frame_terminator + &__GLEW_GREMEDY_frame_terminator, +#endif +#ifdef GL_GREMEDY_string_marker + &__GLEW_GREMEDY_string_marker, +#endif +#ifdef GL_HP_convolution_border_modes + &__GLEW_HP_convolution_border_modes, +#endif +#ifdef GL_HP_image_transform + &__GLEW_HP_image_transform, +#endif +#ifdef GL_HP_occlusion_test + &__GLEW_HP_occlusion_test, +#endif +#ifdef GL_HP_texture_lighting + &__GLEW_HP_texture_lighting, +#endif +#ifdef GL_IBM_cull_vertex + &__GLEW_IBM_cull_vertex, +#endif +#ifdef GL_IBM_multimode_draw_arrays + &__GLEW_IBM_multimode_draw_arrays, +#endif +#ifdef GL_IBM_rasterpos_clip + &__GLEW_IBM_rasterpos_clip, +#endif +#ifdef GL_IBM_static_data + &__GLEW_IBM_static_data, +#endif +#ifdef GL_IBM_texture_mirrored_repeat + &__GLEW_IBM_texture_mirrored_repeat, +#endif +#ifdef GL_IBM_vertex_array_lists + &__GLEW_IBM_vertex_array_lists, +#endif +#ifdef GL_IMG_bindless_texture + &__GLEW_IMG_bindless_texture, +#endif +#ifdef GL_IMG_framebuffer_downsample + &__GLEW_IMG_framebuffer_downsample, +#endif +#ifdef GL_IMG_multisampled_render_to_texture + &__GLEW_IMG_multisampled_render_to_texture, +#endif +#ifdef GL_IMG_program_binary + &__GLEW_IMG_program_binary, +#endif +#ifdef GL_IMG_read_format + &__GLEW_IMG_read_format, +#endif +#ifdef GL_IMG_shader_binary + &__GLEW_IMG_shader_binary, +#endif +#ifdef GL_IMG_texture_compression_pvrtc + &__GLEW_IMG_texture_compression_pvrtc, +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + &__GLEW_IMG_texture_compression_pvrtc2, +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + &__GLEW_IMG_texture_env_enhanced_fixed_function, +#endif +#ifdef GL_IMG_texture_filter_cubic + &__GLEW_IMG_texture_filter_cubic, +#endif +#ifdef GL_INGR_color_clamp + &__GLEW_INGR_color_clamp, +#endif +#ifdef GL_INGR_interlace_read + &__GLEW_INGR_interlace_read, +#endif +#ifdef GL_INTEL_blackhole_render + &__GLEW_INTEL_blackhole_render, +#endif +#ifdef GL_INTEL_conservative_rasterization + &__GLEW_INTEL_conservative_rasterization, +#endif +#ifdef GL_INTEL_fragment_shader_ordering + &__GLEW_INTEL_fragment_shader_ordering, +#endif +#ifdef GL_INTEL_framebuffer_CMAA + &__GLEW_INTEL_framebuffer_CMAA, +#endif +#ifdef GL_INTEL_map_texture + &__GLEW_INTEL_map_texture, +#endif +#ifdef GL_INTEL_parallel_arrays + &__GLEW_INTEL_parallel_arrays, +#endif +#ifdef GL_INTEL_performance_query + &__GLEW_INTEL_performance_query, +#endif +#ifdef GL_INTEL_shader_integer_functions2 + &__GLEW_INTEL_shader_integer_functions2, +#endif +#ifdef GL_INTEL_texture_scissor + &__GLEW_INTEL_texture_scissor, +#endif +#ifdef GL_KHR_blend_equation_advanced + &__GLEW_KHR_blend_equation_advanced, +#endif +#ifdef GL_KHR_blend_equation_advanced_coherent + &__GLEW_KHR_blend_equation_advanced_coherent, +#endif +#ifdef GL_KHR_context_flush_control + &__GLEW_KHR_context_flush_control, +#endif +#ifdef GL_KHR_debug + &__GLEW_KHR_debug, +#endif +#ifdef GL_KHR_no_error + &__GLEW_KHR_no_error, +#endif +#ifdef GL_KHR_parallel_shader_compile + &__GLEW_KHR_parallel_shader_compile, +#endif +#ifdef GL_KHR_robust_buffer_access_behavior + &__GLEW_KHR_robust_buffer_access_behavior, +#endif +#ifdef GL_KHR_robustness + &__GLEW_KHR_robustness, +#endif +#ifdef GL_KHR_shader_subgroup + &__GLEW_KHR_shader_subgroup, +#endif +#ifdef GL_KHR_texture_compression_astc_hdr + &__GLEW_KHR_texture_compression_astc_hdr, +#endif +#ifdef GL_KHR_texture_compression_astc_ldr + &__GLEW_KHR_texture_compression_astc_ldr, +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + &__GLEW_KHR_texture_compression_astc_sliced_3d, +#endif +#ifdef GL_KTX_buffer_region + &__GLEW_KTX_buffer_region, +#endif +#ifdef GL_MESAX_texture_stack + &__GLEW_MESAX_texture_stack, +#endif +#ifdef GL_MESA_framebuffer_flip_y + &__GLEW_MESA_framebuffer_flip_y, +#endif +#ifdef GL_MESA_pack_invert + &__GLEW_MESA_pack_invert, +#endif +#ifdef GL_MESA_program_binary_formats + &__GLEW_MESA_program_binary_formats, +#endif +#ifdef GL_MESA_resize_buffers + &__GLEW_MESA_resize_buffers, +#endif +#ifdef GL_MESA_shader_integer_functions + &__GLEW_MESA_shader_integer_functions, +#endif +#ifdef GL_MESA_tile_raster_order + &__GLEW_MESA_tile_raster_order, +#endif +#ifdef GL_MESA_window_pos + &__GLEW_MESA_window_pos, +#endif +#ifdef GL_MESA_ycbcr_texture + &__GLEW_MESA_ycbcr_texture, +#endif +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + &__GLEW_NVX_blend_equation_advanced_multi_draw_buffers, +#endif +#ifdef GL_NVX_conditional_render + &__GLEW_NVX_conditional_render, +#endif +#ifdef GL_NVX_gpu_memory_info + &__GLEW_NVX_gpu_memory_info, +#endif +#ifdef GL_NVX_gpu_multicast2 + &__GLEW_NVX_gpu_multicast2, +#endif +#ifdef GL_NVX_linked_gpu_multicast + &__GLEW_NVX_linked_gpu_multicast, +#endif +#ifdef GL_NVX_progress_fence + &__GLEW_NVX_progress_fence, +#endif +#ifdef GL_NV_3dvision_settings + &__GLEW_NV_3dvision_settings, +#endif +#ifdef GL_NV_EGL_stream_consumer_external + &__GLEW_NV_EGL_stream_consumer_external, +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + &__GLEW_NV_alpha_to_coverage_dither_control, +#endif +#ifdef GL_NV_bgr + &__GLEW_NV_bgr, +#endif +#ifdef GL_NV_bindless_multi_draw_indirect + &__GLEW_NV_bindless_multi_draw_indirect, +#endif +#ifdef GL_NV_bindless_multi_draw_indirect_count + &__GLEW_NV_bindless_multi_draw_indirect_count, +#endif +#ifdef GL_NV_bindless_texture + &__GLEW_NV_bindless_texture, +#endif +#ifdef GL_NV_blend_equation_advanced + &__GLEW_NV_blend_equation_advanced, +#endif +#ifdef GL_NV_blend_equation_advanced_coherent + &__GLEW_NV_blend_equation_advanced_coherent, +#endif +#ifdef GL_NV_blend_minmax_factor + &__GLEW_NV_blend_minmax_factor, +#endif +#ifdef GL_NV_blend_square + &__GLEW_NV_blend_square, +#endif +#ifdef GL_NV_clip_space_w_scaling + &__GLEW_NV_clip_space_w_scaling, +#endif +#ifdef GL_NV_command_list + &__GLEW_NV_command_list, +#endif +#ifdef GL_NV_compute_program5 + &__GLEW_NV_compute_program5, +#endif +#ifdef GL_NV_compute_shader_derivatives + &__GLEW_NV_compute_shader_derivatives, +#endif +#ifdef GL_NV_conditional_render + &__GLEW_NV_conditional_render, +#endif +#ifdef GL_NV_conservative_raster + &__GLEW_NV_conservative_raster, +#endif +#ifdef GL_NV_conservative_raster_dilate + &__GLEW_NV_conservative_raster_dilate, +#endif +#ifdef GL_NV_conservative_raster_pre_snap + &__GLEW_NV_conservative_raster_pre_snap, +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + &__GLEW_NV_conservative_raster_pre_snap_triangles, +#endif +#ifdef GL_NV_conservative_raster_underestimation + &__GLEW_NV_conservative_raster_underestimation, +#endif +#ifdef GL_NV_copy_buffer + &__GLEW_NV_copy_buffer, +#endif +#ifdef GL_NV_copy_depth_to_color + &__GLEW_NV_copy_depth_to_color, +#endif +#ifdef GL_NV_copy_image + &__GLEW_NV_copy_image, +#endif +#ifdef GL_NV_deep_texture3D + &__GLEW_NV_deep_texture3D, +#endif +#ifdef GL_NV_depth_buffer_float + &__GLEW_NV_depth_buffer_float, +#endif +#ifdef GL_NV_depth_clamp + &__GLEW_NV_depth_clamp, +#endif +#ifdef GL_NV_depth_nonlinear + &__GLEW_NV_depth_nonlinear, +#endif +#ifdef GL_NV_depth_range_unclamped + &__GLEW_NV_depth_range_unclamped, +#endif +#ifdef GL_NV_draw_buffers + &__GLEW_NV_draw_buffers, +#endif +#ifdef GL_NV_draw_instanced + &__GLEW_NV_draw_instanced, +#endif +#ifdef GL_NV_draw_texture + &__GLEW_NV_draw_texture, +#endif +#ifdef GL_NV_draw_vulkan_image + &__GLEW_NV_draw_vulkan_image, +#endif +#ifdef GL_NV_evaluators + &__GLEW_NV_evaluators, +#endif +#ifdef GL_NV_explicit_attrib_location + &__GLEW_NV_explicit_attrib_location, +#endif +#ifdef GL_NV_explicit_multisample + &__GLEW_NV_explicit_multisample, +#endif +#ifdef GL_NV_fbo_color_attachments + &__GLEW_NV_fbo_color_attachments, +#endif +#ifdef GL_NV_fence + &__GLEW_NV_fence, +#endif +#ifdef GL_NV_fill_rectangle + &__GLEW_NV_fill_rectangle, +#endif +#ifdef GL_NV_float_buffer + &__GLEW_NV_float_buffer, +#endif +#ifdef GL_NV_fog_distance + &__GLEW_NV_fog_distance, +#endif +#ifdef GL_NV_fragment_coverage_to_color + &__GLEW_NV_fragment_coverage_to_color, +#endif +#ifdef GL_NV_fragment_program + &__GLEW_NV_fragment_program, +#endif +#ifdef GL_NV_fragment_program2 + &__GLEW_NV_fragment_program2, +#endif +#ifdef GL_NV_fragment_program4 + &__GLEW_NV_fragment_program4, +#endif +#ifdef GL_NV_fragment_program_option + &__GLEW_NV_fragment_program_option, +#endif +#ifdef GL_NV_fragment_shader_barycentric + &__GLEW_NV_fragment_shader_barycentric, +#endif +#ifdef GL_NV_fragment_shader_interlock + &__GLEW_NV_fragment_shader_interlock, +#endif +#ifdef GL_NV_framebuffer_blit + &__GLEW_NV_framebuffer_blit, +#endif +#ifdef GL_NV_framebuffer_mixed_samples + &__GLEW_NV_framebuffer_mixed_samples, +#endif +#ifdef GL_NV_framebuffer_multisample + &__GLEW_NV_framebuffer_multisample, +#endif +#ifdef GL_NV_framebuffer_multisample_coverage + &__GLEW_NV_framebuffer_multisample_coverage, +#endif +#ifdef GL_NV_generate_mipmap_sRGB + &__GLEW_NV_generate_mipmap_sRGB, +#endif +#ifdef GL_NV_geometry_program4 + &__GLEW_NV_geometry_program4, +#endif +#ifdef GL_NV_geometry_shader4 + &__GLEW_NV_geometry_shader4, +#endif +#ifdef GL_NV_geometry_shader_passthrough + &__GLEW_NV_geometry_shader_passthrough, +#endif +#ifdef GL_NV_gpu_multicast + &__GLEW_NV_gpu_multicast, +#endif +#ifdef GL_NV_gpu_program4 + &__GLEW_NV_gpu_program4, +#endif +#ifdef GL_NV_gpu_program5 + &__GLEW_NV_gpu_program5, +#endif +#ifdef GL_NV_gpu_program5_mem_extended + &__GLEW_NV_gpu_program5_mem_extended, +#endif +#ifdef GL_NV_gpu_program_fp64 + &__GLEW_NV_gpu_program_fp64, +#endif +#ifdef GL_NV_gpu_shader5 + &__GLEW_NV_gpu_shader5, +#endif +#ifdef GL_NV_half_float + &__GLEW_NV_half_float, +#endif +#ifdef GL_NV_image_formats + &__GLEW_NV_image_formats, +#endif +#ifdef GL_NV_instanced_arrays + &__GLEW_NV_instanced_arrays, +#endif +#ifdef GL_NV_internalformat_sample_query + &__GLEW_NV_internalformat_sample_query, +#endif +#ifdef GL_NV_light_max_exponent + &__GLEW_NV_light_max_exponent, +#endif +#ifdef GL_NV_memory_attachment + &__GLEW_NV_memory_attachment, +#endif +#ifdef GL_NV_mesh_shader + &__GLEW_NV_mesh_shader, +#endif +#ifdef GL_NV_multisample_coverage + &__GLEW_NV_multisample_coverage, +#endif +#ifdef GL_NV_multisample_filter_hint + &__GLEW_NV_multisample_filter_hint, +#endif +#ifdef GL_NV_non_square_matrices + &__GLEW_NV_non_square_matrices, +#endif +#ifdef GL_NV_occlusion_query + &__GLEW_NV_occlusion_query, +#endif +#ifdef GL_NV_pack_subimage + &__GLEW_NV_pack_subimage, +#endif +#ifdef GL_NV_packed_depth_stencil + &__GLEW_NV_packed_depth_stencil, +#endif +#ifdef GL_NV_packed_float + &__GLEW_NV_packed_float, +#endif +#ifdef GL_NV_packed_float_linear + &__GLEW_NV_packed_float_linear, +#endif +#ifdef GL_NV_parameter_buffer_object + &__GLEW_NV_parameter_buffer_object, +#endif +#ifdef GL_NV_parameter_buffer_object2 + &__GLEW_NV_parameter_buffer_object2, +#endif +#ifdef GL_NV_path_rendering + &__GLEW_NV_path_rendering, +#endif +#ifdef GL_NV_path_rendering_shared_edge + &__GLEW_NV_path_rendering_shared_edge, +#endif +#ifdef GL_NV_pixel_buffer_object + &__GLEW_NV_pixel_buffer_object, +#endif +#ifdef GL_NV_pixel_data_range + &__GLEW_NV_pixel_data_range, +#endif +#ifdef GL_NV_platform_binary + &__GLEW_NV_platform_binary, +#endif +#ifdef GL_NV_point_sprite + &__GLEW_NV_point_sprite, +#endif +#ifdef GL_NV_polygon_mode + &__GLEW_NV_polygon_mode, +#endif +#ifdef GL_NV_present_video + &__GLEW_NV_present_video, +#endif +#ifdef GL_NV_primitive_restart + &__GLEW_NV_primitive_restart, +#endif +#ifdef GL_NV_query_resource_tag + &__GLEW_NV_query_resource_tag, +#endif +#ifdef GL_NV_read_buffer + &__GLEW_NV_read_buffer, +#endif +#ifdef GL_NV_read_buffer_front + &__GLEW_NV_read_buffer_front, +#endif +#ifdef GL_NV_read_depth + &__GLEW_NV_read_depth, +#endif +#ifdef GL_NV_read_depth_stencil + &__GLEW_NV_read_depth_stencil, +#endif +#ifdef GL_NV_read_stencil + &__GLEW_NV_read_stencil, +#endif +#ifdef GL_NV_register_combiners + &__GLEW_NV_register_combiners, +#endif +#ifdef GL_NV_register_combiners2 + &__GLEW_NV_register_combiners2, +#endif +#ifdef GL_NV_representative_fragment_test + &__GLEW_NV_representative_fragment_test, +#endif +#ifdef GL_NV_robustness_video_memory_purge + &__GLEW_NV_robustness_video_memory_purge, +#endif +#ifdef GL_NV_sRGB_formats + &__GLEW_NV_sRGB_formats, +#endif +#ifdef GL_NV_sample_locations + &__GLEW_NV_sample_locations, +#endif +#ifdef GL_NV_sample_mask_override_coverage + &__GLEW_NV_sample_mask_override_coverage, +#endif +#ifdef GL_NV_scissor_exclusive + &__GLEW_NV_scissor_exclusive, +#endif +#ifdef GL_NV_shader_atomic_counters + &__GLEW_NV_shader_atomic_counters, +#endif +#ifdef GL_NV_shader_atomic_float + &__GLEW_NV_shader_atomic_float, +#endif +#ifdef GL_NV_shader_atomic_float64 + &__GLEW_NV_shader_atomic_float64, +#endif +#ifdef GL_NV_shader_atomic_fp16_vector + &__GLEW_NV_shader_atomic_fp16_vector, +#endif +#ifdef GL_NV_shader_atomic_int64 + &__GLEW_NV_shader_atomic_int64, +#endif +#ifdef GL_NV_shader_buffer_load + &__GLEW_NV_shader_buffer_load, +#endif +#ifdef GL_NV_shader_noperspective_interpolation + &__GLEW_NV_shader_noperspective_interpolation, +#endif +#ifdef GL_NV_shader_storage_buffer_object + &__GLEW_NV_shader_storage_buffer_object, +#endif +#ifdef GL_NV_shader_subgroup_partitioned + &__GLEW_NV_shader_subgroup_partitioned, +#endif +#ifdef GL_NV_shader_texture_footprint + &__GLEW_NV_shader_texture_footprint, +#endif +#ifdef GL_NV_shader_thread_group + &__GLEW_NV_shader_thread_group, +#endif +#ifdef GL_NV_shader_thread_shuffle + &__GLEW_NV_shader_thread_shuffle, +#endif +#ifdef GL_NV_shading_rate_image + &__GLEW_NV_shading_rate_image, +#endif +#ifdef GL_NV_shadow_samplers_array + &__GLEW_NV_shadow_samplers_array, +#endif +#ifdef GL_NV_shadow_samplers_cube + &__GLEW_NV_shadow_samplers_cube, +#endif +#ifdef GL_NV_stereo_view_rendering + &__GLEW_NV_stereo_view_rendering, +#endif +#ifdef GL_NV_tessellation_program5 + &__GLEW_NV_tessellation_program5, +#endif +#ifdef GL_NV_texgen_emboss + &__GLEW_NV_texgen_emboss, +#endif +#ifdef GL_NV_texgen_reflection + &__GLEW_NV_texgen_reflection, +#endif +#ifdef GL_NV_texture_array + &__GLEW_NV_texture_array, +#endif +#ifdef GL_NV_texture_barrier + &__GLEW_NV_texture_barrier, +#endif +#ifdef GL_NV_texture_border_clamp + &__GLEW_NV_texture_border_clamp, +#endif +#ifdef GL_NV_texture_compression_latc + &__GLEW_NV_texture_compression_latc, +#endif +#ifdef GL_NV_texture_compression_s3tc + &__GLEW_NV_texture_compression_s3tc, +#endif +#ifdef GL_NV_texture_compression_s3tc_update + &__GLEW_NV_texture_compression_s3tc_update, +#endif +#ifdef GL_NV_texture_compression_vtc + &__GLEW_NV_texture_compression_vtc, +#endif +#ifdef GL_NV_texture_env_combine4 + &__GLEW_NV_texture_env_combine4, +#endif +#ifdef GL_NV_texture_expand_normal + &__GLEW_NV_texture_expand_normal, +#endif +#ifdef GL_NV_texture_multisample + &__GLEW_NV_texture_multisample, +#endif +#ifdef GL_NV_texture_npot_2D_mipmap + &__GLEW_NV_texture_npot_2D_mipmap, +#endif +#ifdef GL_NV_texture_rectangle + &__GLEW_NV_texture_rectangle, +#endif +#ifdef GL_NV_texture_rectangle_compressed + &__GLEW_NV_texture_rectangle_compressed, +#endif +#ifdef GL_NV_texture_shader + &__GLEW_NV_texture_shader, +#endif +#ifdef GL_NV_texture_shader2 + &__GLEW_NV_texture_shader2, +#endif +#ifdef GL_NV_texture_shader3 + &__GLEW_NV_texture_shader3, +#endif +#ifdef GL_NV_transform_feedback + &__GLEW_NV_transform_feedback, +#endif +#ifdef GL_NV_transform_feedback2 + &__GLEW_NV_transform_feedback2, +#endif +#ifdef GL_NV_uniform_buffer_unified_memory + &__GLEW_NV_uniform_buffer_unified_memory, +#endif +#ifdef GL_NV_vdpau_interop + &__GLEW_NV_vdpau_interop, +#endif +#ifdef GL_NV_vdpau_interop2 + &__GLEW_NV_vdpau_interop2, +#endif +#ifdef GL_NV_vertex_array_range + &__GLEW_NV_vertex_array_range, +#endif +#ifdef GL_NV_vertex_array_range2 + &__GLEW_NV_vertex_array_range2, +#endif +#ifdef GL_NV_vertex_attrib_integer_64bit + &__GLEW_NV_vertex_attrib_integer_64bit, +#endif +#ifdef GL_NV_vertex_buffer_unified_memory + &__GLEW_NV_vertex_buffer_unified_memory, +#endif +#ifdef GL_NV_vertex_program + &__GLEW_NV_vertex_program, +#endif +#ifdef GL_NV_vertex_program1_1 + &__GLEW_NV_vertex_program1_1, +#endif +#ifdef GL_NV_vertex_program2 + &__GLEW_NV_vertex_program2, +#endif +#ifdef GL_NV_vertex_program2_option + &__GLEW_NV_vertex_program2_option, +#endif +#ifdef GL_NV_vertex_program3 + &__GLEW_NV_vertex_program3, +#endif +#ifdef GL_NV_vertex_program4 + &__GLEW_NV_vertex_program4, +#endif +#ifdef GL_NV_video_capture + &__GLEW_NV_video_capture, +#endif +#ifdef GL_NV_viewport_array + &__GLEW_NV_viewport_array, +#endif +#ifdef GL_NV_viewport_array2 + &__GLEW_NV_viewport_array2, +#endif +#ifdef GL_NV_viewport_swizzle + &__GLEW_NV_viewport_swizzle, +#endif +#ifdef GL_OES_EGL_image + &__GLEW_OES_EGL_image, +#endif +#ifdef GL_OES_EGL_image_external + &__GLEW_OES_EGL_image_external, +#endif +#ifdef GL_OES_EGL_image_external_essl3 + &__GLEW_OES_EGL_image_external_essl3, +#endif +#ifdef GL_OES_blend_equation_separate + &__GLEW_OES_blend_equation_separate, +#endif +#ifdef GL_OES_blend_func_separate + &__GLEW_OES_blend_func_separate, +#endif +#ifdef GL_OES_blend_subtract + &__GLEW_OES_blend_subtract, +#endif +#ifdef GL_OES_byte_coordinates + &__GLEW_OES_byte_coordinates, +#endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + &__GLEW_OES_compressed_ETC1_RGB8_texture, +#endif +#ifdef GL_OES_compressed_paletted_texture + &__GLEW_OES_compressed_paletted_texture, +#endif +#ifdef GL_OES_copy_image + &__GLEW_OES_copy_image, +#endif +#ifdef GL_OES_depth24 + &__GLEW_OES_depth24, +#endif +#ifdef GL_OES_depth32 + &__GLEW_OES_depth32, +#endif +#ifdef GL_OES_depth_texture + &__GLEW_OES_depth_texture, +#endif +#ifdef GL_OES_depth_texture_cube_map + &__GLEW_OES_depth_texture_cube_map, +#endif +#ifdef GL_OES_draw_buffers_indexed + &__GLEW_OES_draw_buffers_indexed, +#endif +#ifdef GL_OES_draw_texture + &__GLEW_OES_draw_texture, +#endif +#ifdef GL_OES_element_index_uint + &__GLEW_OES_element_index_uint, +#endif +#ifdef GL_OES_extended_matrix_palette + &__GLEW_OES_extended_matrix_palette, +#endif +#ifdef GL_OES_fbo_render_mipmap + &__GLEW_OES_fbo_render_mipmap, +#endif +#ifdef GL_OES_fragment_precision_high + &__GLEW_OES_fragment_precision_high, +#endif +#ifdef GL_OES_framebuffer_object + &__GLEW_OES_framebuffer_object, +#endif +#ifdef GL_OES_geometry_point_size + &__GLEW_OES_geometry_point_size, +#endif +#ifdef GL_OES_geometry_shader + &__GLEW_OES_geometry_shader, +#endif +#ifdef GL_OES_get_program_binary + &__GLEW_OES_get_program_binary, +#endif +#ifdef GL_OES_gpu_shader5 + &__GLEW_OES_gpu_shader5, +#endif +#ifdef GL_OES_mapbuffer + &__GLEW_OES_mapbuffer, +#endif +#ifdef GL_OES_matrix_get + &__GLEW_OES_matrix_get, +#endif +#ifdef GL_OES_matrix_palette + &__GLEW_OES_matrix_palette, +#endif +#ifdef GL_OES_packed_depth_stencil + &__GLEW_OES_packed_depth_stencil, +#endif +#ifdef GL_OES_point_size_array + &__GLEW_OES_point_size_array, +#endif +#ifdef GL_OES_point_sprite + &__GLEW_OES_point_sprite, +#endif +#ifdef GL_OES_read_format + &__GLEW_OES_read_format, +#endif +#ifdef GL_OES_required_internalformat + &__GLEW_OES_required_internalformat, +#endif +#ifdef GL_OES_rgb8_rgba8 + &__GLEW_OES_rgb8_rgba8, +#endif +#ifdef GL_OES_sample_shading + &__GLEW_OES_sample_shading, +#endif +#ifdef GL_OES_sample_variables + &__GLEW_OES_sample_variables, +#endif +#ifdef GL_OES_shader_image_atomic + &__GLEW_OES_shader_image_atomic, +#endif +#ifdef GL_OES_shader_io_blocks + &__GLEW_OES_shader_io_blocks, +#endif +#ifdef GL_OES_shader_multisample_interpolation + &__GLEW_OES_shader_multisample_interpolation, +#endif +#ifdef GL_OES_single_precision + &__GLEW_OES_single_precision, +#endif +#ifdef GL_OES_standard_derivatives + &__GLEW_OES_standard_derivatives, +#endif +#ifdef GL_OES_stencil1 + &__GLEW_OES_stencil1, +#endif +#ifdef GL_OES_stencil4 + &__GLEW_OES_stencil4, +#endif +#ifdef GL_OES_stencil8 + &__GLEW_OES_stencil8, +#endif +#ifdef GL_OES_surfaceless_context + &__GLEW_OES_surfaceless_context, +#endif +#ifdef GL_OES_tessellation_point_size + &__GLEW_OES_tessellation_point_size, +#endif +#ifdef GL_OES_tessellation_shader + &__GLEW_OES_tessellation_shader, +#endif +#ifdef GL_OES_texture_3D + &__GLEW_OES_texture_3D, +#endif +#ifdef GL_OES_texture_border_clamp + &__GLEW_OES_texture_border_clamp, +#endif +#ifdef GL_OES_texture_buffer + &__GLEW_OES_texture_buffer, +#endif +#ifdef GL_OES_texture_compression_astc + &__GLEW_OES_texture_compression_astc, +#endif +#ifdef GL_OES_texture_cube_map + &__GLEW_OES_texture_cube_map, +#endif +#ifdef GL_OES_texture_cube_map_array + &__GLEW_OES_texture_cube_map_array, +#endif +#ifdef GL_OES_texture_env_crossbar + &__GLEW_OES_texture_env_crossbar, +#endif +#ifdef GL_OES_texture_mirrored_repeat + &__GLEW_OES_texture_mirrored_repeat, +#endif +#ifdef GL_OES_texture_npot + &__GLEW_OES_texture_npot, +#endif +#ifdef GL_OES_texture_stencil8 + &__GLEW_OES_texture_stencil8, +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + &__GLEW_OES_texture_storage_multisample_2d_array, +#endif +#ifdef GL_OES_texture_view + &__GLEW_OES_texture_view, +#endif +#ifdef GL_OES_vertex_array_object + &__GLEW_OES_vertex_array_object, +#endif +#ifdef GL_OES_vertex_half_float + &__GLEW_OES_vertex_half_float, +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + &__GLEW_OES_vertex_type_10_10_10_2, +#endif +#ifdef GL_OML_interlace + &__GLEW_OML_interlace, +#endif +#ifdef GL_OML_resample + &__GLEW_OML_resample, +#endif +#ifdef GL_OML_subsample + &__GLEW_OML_subsample, +#endif +#ifdef GL_OVR_multiview + &__GLEW_OVR_multiview, +#endif +#ifdef GL_OVR_multiview2 + &__GLEW_OVR_multiview2, +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + &__GLEW_OVR_multiview_multisampled_render_to_texture, +#endif +#ifdef GL_PGI_misc_hints + &__GLEW_PGI_misc_hints, +#endif +#ifdef GL_PGI_vertex_hints + &__GLEW_PGI_vertex_hints, +#endif +#ifdef GL_QCOM_YUV_texture_gather + &__GLEW_QCOM_YUV_texture_gather, +#endif +#ifdef GL_QCOM_alpha_test + &__GLEW_QCOM_alpha_test, +#endif +#ifdef GL_QCOM_binning_control + &__GLEW_QCOM_binning_control, +#endif +#ifdef GL_QCOM_driver_control + &__GLEW_QCOM_driver_control, +#endif +#ifdef GL_QCOM_extended_get + &__GLEW_QCOM_extended_get, +#endif +#ifdef GL_QCOM_extended_get2 + &__GLEW_QCOM_extended_get2, +#endif +#ifdef GL_QCOM_framebuffer_foveated + &__GLEW_QCOM_framebuffer_foveated, +#endif +#ifdef GL_QCOM_perfmon_global_mode + &__GLEW_QCOM_perfmon_global_mode, +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + &__GLEW_QCOM_shader_framebuffer_fetch_noncoherent, +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + &__GLEW_QCOM_shader_framebuffer_fetch_rate, +#endif +#ifdef GL_QCOM_texture_foveated + &__GLEW_QCOM_texture_foveated, +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + &__GLEW_QCOM_texture_foveated_subsampled_layout, +#endif +#ifdef GL_QCOM_tiled_rendering + &__GLEW_QCOM_tiled_rendering, +#endif +#ifdef GL_QCOM_writeonly_rendering + &__GLEW_QCOM_writeonly_rendering, +#endif +#ifdef GL_REGAL_ES1_0_compatibility + &__GLEW_REGAL_ES1_0_compatibility, +#endif +#ifdef GL_REGAL_ES1_1_compatibility + &__GLEW_REGAL_ES1_1_compatibility, +#endif +#ifdef GL_REGAL_enable + &__GLEW_REGAL_enable, +#endif +#ifdef GL_REGAL_error_string + &__GLEW_REGAL_error_string, +#endif +#ifdef GL_REGAL_extension_query + &__GLEW_REGAL_extension_query, +#endif +#ifdef GL_REGAL_log + &__GLEW_REGAL_log, +#endif +#ifdef GL_REGAL_proc_address + &__GLEW_REGAL_proc_address, +#endif +#ifdef GL_REND_screen_coordinates + &__GLEW_REND_screen_coordinates, +#endif +#ifdef GL_S3_s3tc + &__GLEW_S3_s3tc, +#endif +#ifdef GL_SGIS_clip_band_hint + &__GLEW_SGIS_clip_band_hint, +#endif +#ifdef GL_SGIS_color_range + &__GLEW_SGIS_color_range, +#endif +#ifdef GL_SGIS_detail_texture + &__GLEW_SGIS_detail_texture, +#endif +#ifdef GL_SGIS_fog_function + &__GLEW_SGIS_fog_function, +#endif +#ifdef GL_SGIS_generate_mipmap + &__GLEW_SGIS_generate_mipmap, +#endif +#ifdef GL_SGIS_line_texgen + &__GLEW_SGIS_line_texgen, +#endif +#ifdef GL_SGIS_multisample + &__GLEW_SGIS_multisample, +#endif +#ifdef GL_SGIS_multitexture + &__GLEW_SGIS_multitexture, +#endif +#ifdef GL_SGIS_pixel_texture + &__GLEW_SGIS_pixel_texture, +#endif +#ifdef GL_SGIS_point_line_texgen + &__GLEW_SGIS_point_line_texgen, +#endif +#ifdef GL_SGIS_shared_multisample + &__GLEW_SGIS_shared_multisample, +#endif +#ifdef GL_SGIS_sharpen_texture + &__GLEW_SGIS_sharpen_texture, +#endif +#ifdef GL_SGIS_texture4D + &__GLEW_SGIS_texture4D, +#endif +#ifdef GL_SGIS_texture_border_clamp + &__GLEW_SGIS_texture_border_clamp, +#endif +#ifdef GL_SGIS_texture_edge_clamp + &__GLEW_SGIS_texture_edge_clamp, +#endif +#ifdef GL_SGIS_texture_filter4 + &__GLEW_SGIS_texture_filter4, +#endif +#ifdef GL_SGIS_texture_lod + &__GLEW_SGIS_texture_lod, +#endif +#ifdef GL_SGIS_texture_select + &__GLEW_SGIS_texture_select, +#endif +#ifdef GL_SGIX_async + &__GLEW_SGIX_async, +#endif +#ifdef GL_SGIX_async_histogram + &__GLEW_SGIX_async_histogram, +#endif +#ifdef GL_SGIX_async_pixel + &__GLEW_SGIX_async_pixel, +#endif +#ifdef GL_SGIX_bali_g_instruments + &__GLEW_SGIX_bali_g_instruments, +#endif +#ifdef GL_SGIX_bali_r_instruments + &__GLEW_SGIX_bali_r_instruments, +#endif +#ifdef GL_SGIX_bali_timer_instruments + &__GLEW_SGIX_bali_timer_instruments, +#endif +#ifdef GL_SGIX_blend_alpha_minmax + &__GLEW_SGIX_blend_alpha_minmax, +#endif +#ifdef GL_SGIX_blend_cadd + &__GLEW_SGIX_blend_cadd, +#endif +#ifdef GL_SGIX_blend_cmultiply + &__GLEW_SGIX_blend_cmultiply, +#endif +#ifdef GL_SGIX_calligraphic_fragment + &__GLEW_SGIX_calligraphic_fragment, +#endif +#ifdef GL_SGIX_clipmap + &__GLEW_SGIX_clipmap, +#endif +#ifdef GL_SGIX_color_matrix_accuracy + &__GLEW_SGIX_color_matrix_accuracy, +#endif +#ifdef GL_SGIX_color_table_index_mode + &__GLEW_SGIX_color_table_index_mode, +#endif +#ifdef GL_SGIX_complex_polar + &__GLEW_SGIX_complex_polar, +#endif +#ifdef GL_SGIX_convolution_accuracy + &__GLEW_SGIX_convolution_accuracy, +#endif +#ifdef GL_SGIX_cube_map + &__GLEW_SGIX_cube_map, +#endif +#ifdef GL_SGIX_cylinder_texgen + &__GLEW_SGIX_cylinder_texgen, +#endif +#ifdef GL_SGIX_datapipe + &__GLEW_SGIX_datapipe, +#endif +#ifdef GL_SGIX_decimation + &__GLEW_SGIX_decimation, +#endif +#ifdef GL_SGIX_depth_pass_instrument + &__GLEW_SGIX_depth_pass_instrument, +#endif +#ifdef GL_SGIX_depth_texture + &__GLEW_SGIX_depth_texture, +#endif +#ifdef GL_SGIX_dvc + &__GLEW_SGIX_dvc, +#endif +#ifdef GL_SGIX_flush_raster + &__GLEW_SGIX_flush_raster, +#endif +#ifdef GL_SGIX_fog_blend + &__GLEW_SGIX_fog_blend, +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + &__GLEW_SGIX_fog_factor_to_alpha, +#endif +#ifdef GL_SGIX_fog_layers + &__GLEW_SGIX_fog_layers, +#endif +#ifdef GL_SGIX_fog_offset + &__GLEW_SGIX_fog_offset, +#endif +#ifdef GL_SGIX_fog_patchy + &__GLEW_SGIX_fog_patchy, +#endif +#ifdef GL_SGIX_fog_scale + &__GLEW_SGIX_fog_scale, +#endif +#ifdef GL_SGIX_fog_texture + &__GLEW_SGIX_fog_texture, +#endif +#ifdef GL_SGIX_fragment_lighting_space + &__GLEW_SGIX_fragment_lighting_space, +#endif +#ifdef GL_SGIX_fragment_specular_lighting + &__GLEW_SGIX_fragment_specular_lighting, +#endif +#ifdef GL_SGIX_fragments_instrument + &__GLEW_SGIX_fragments_instrument, +#endif +#ifdef GL_SGIX_framezoom + &__GLEW_SGIX_framezoom, +#endif +#ifdef GL_SGIX_icc_texture + &__GLEW_SGIX_icc_texture, +#endif +#ifdef GL_SGIX_igloo_interface + &__GLEW_SGIX_igloo_interface, +#endif +#ifdef GL_SGIX_image_compression + &__GLEW_SGIX_image_compression, +#endif +#ifdef GL_SGIX_impact_pixel_texture + &__GLEW_SGIX_impact_pixel_texture, +#endif +#ifdef GL_SGIX_instrument_error + &__GLEW_SGIX_instrument_error, +#endif +#ifdef GL_SGIX_interlace + &__GLEW_SGIX_interlace, +#endif +#ifdef GL_SGIX_ir_instrument1 + &__GLEW_SGIX_ir_instrument1, +#endif +#ifdef GL_SGIX_line_quality_hint + &__GLEW_SGIX_line_quality_hint, +#endif +#ifdef GL_SGIX_list_priority + &__GLEW_SGIX_list_priority, +#endif +#ifdef GL_SGIX_mpeg1 + &__GLEW_SGIX_mpeg1, +#endif +#ifdef GL_SGIX_mpeg2 + &__GLEW_SGIX_mpeg2, +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + &__GLEW_SGIX_nonlinear_lighting_pervertex, +#endif +#ifdef GL_SGIX_nurbs_eval + &__GLEW_SGIX_nurbs_eval, +#endif +#ifdef GL_SGIX_occlusion_instrument + &__GLEW_SGIX_occlusion_instrument, +#endif +#ifdef GL_SGIX_packed_6bytes + &__GLEW_SGIX_packed_6bytes, +#endif +#ifdef GL_SGIX_pixel_texture + &__GLEW_SGIX_pixel_texture, +#endif +#ifdef GL_SGIX_pixel_texture_bits + &__GLEW_SGIX_pixel_texture_bits, +#endif +#ifdef GL_SGIX_pixel_texture_lod + &__GLEW_SGIX_pixel_texture_lod, +#endif +#ifdef GL_SGIX_pixel_tiles + &__GLEW_SGIX_pixel_tiles, +#endif +#ifdef GL_SGIX_polynomial_ffd + &__GLEW_SGIX_polynomial_ffd, +#endif +#ifdef GL_SGIX_quad_mesh + &__GLEW_SGIX_quad_mesh, +#endif +#ifdef GL_SGIX_reference_plane + &__GLEW_SGIX_reference_plane, +#endif +#ifdef GL_SGIX_resample + &__GLEW_SGIX_resample, +#endif +#ifdef GL_SGIX_scalebias_hint + &__GLEW_SGIX_scalebias_hint, +#endif +#ifdef GL_SGIX_shadow + &__GLEW_SGIX_shadow, +#endif +#ifdef GL_SGIX_shadow_ambient + &__GLEW_SGIX_shadow_ambient, +#endif +#ifdef GL_SGIX_slim + &__GLEW_SGIX_slim, +#endif +#ifdef GL_SGIX_spotlight_cutoff + &__GLEW_SGIX_spotlight_cutoff, +#endif +#ifdef GL_SGIX_sprite + &__GLEW_SGIX_sprite, +#endif +#ifdef GL_SGIX_subdiv_patch + &__GLEW_SGIX_subdiv_patch, +#endif +#ifdef GL_SGIX_subsample + &__GLEW_SGIX_subsample, +#endif +#ifdef GL_SGIX_tag_sample_buffer + &__GLEW_SGIX_tag_sample_buffer, +#endif +#ifdef GL_SGIX_texture_add_env + &__GLEW_SGIX_texture_add_env, +#endif +#ifdef GL_SGIX_texture_coordinate_clamp + &__GLEW_SGIX_texture_coordinate_clamp, +#endif +#ifdef GL_SGIX_texture_lod_bias + &__GLEW_SGIX_texture_lod_bias, +#endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + &__GLEW_SGIX_texture_mipmap_anisotropic, +#endif +#ifdef GL_SGIX_texture_multi_buffer + &__GLEW_SGIX_texture_multi_buffer, +#endif +#ifdef GL_SGIX_texture_phase + &__GLEW_SGIX_texture_phase, +#endif +#ifdef GL_SGIX_texture_range + &__GLEW_SGIX_texture_range, +#endif +#ifdef GL_SGIX_texture_scale_bias + &__GLEW_SGIX_texture_scale_bias, +#endif +#ifdef GL_SGIX_texture_supersample + &__GLEW_SGIX_texture_supersample, +#endif +#ifdef GL_SGIX_vector_ops + &__GLEW_SGIX_vector_ops, +#endif +#ifdef GL_SGIX_vertex_array_object + &__GLEW_SGIX_vertex_array_object, +#endif +#ifdef GL_SGIX_vertex_preclip + &__GLEW_SGIX_vertex_preclip, +#endif +#ifdef GL_SGIX_vertex_preclip_hint + &__GLEW_SGIX_vertex_preclip_hint, +#endif +#ifdef GL_SGIX_ycrcb + &__GLEW_SGIX_ycrcb, +#endif +#ifdef GL_SGIX_ycrcb_subsample + &__GLEW_SGIX_ycrcb_subsample, +#endif +#ifdef GL_SGIX_ycrcba + &__GLEW_SGIX_ycrcba, +#endif +#ifdef GL_SGI_color_matrix + &__GLEW_SGI_color_matrix, +#endif +#ifdef GL_SGI_color_table + &__GLEW_SGI_color_table, +#endif +#ifdef GL_SGI_complex + &__GLEW_SGI_complex, +#endif +#ifdef GL_SGI_complex_type + &__GLEW_SGI_complex_type, +#endif +#ifdef GL_SGI_fft + &__GLEW_SGI_fft, +#endif +#ifdef GL_SGI_texture_color_table + &__GLEW_SGI_texture_color_table, +#endif +#ifdef GL_SUNX_constant_data + &__GLEW_SUNX_constant_data, +#endif +#ifdef GL_SUN_convolution_border_modes + &__GLEW_SUN_convolution_border_modes, +#endif +#ifdef GL_SUN_global_alpha + &__GLEW_SUN_global_alpha, +#endif +#ifdef GL_SUN_mesh_array + &__GLEW_SUN_mesh_array, +#endif +#ifdef GL_SUN_read_video_pixels + &__GLEW_SUN_read_video_pixels, +#endif +#ifdef GL_SUN_slice_accum + &__GLEW_SUN_slice_accum, +#endif +#ifdef GL_SUN_triangle_list + &__GLEW_SUN_triangle_list, +#endif +#ifdef GL_SUN_vertex + &__GLEW_SUN_vertex, +#endif +#ifdef GL_VERSION_1_2 + &__GLEW_VERSION_1_2, +#endif +#ifdef GL_VERSION_1_2_1 + &__GLEW_VERSION_1_2_1, +#endif +#ifdef GL_VERSION_1_3 + &__GLEW_VERSION_1_3, +#endif +#ifdef GL_VERSION_1_4 + &__GLEW_VERSION_1_4, +#endif +#ifdef GL_VERSION_1_5 + &__GLEW_VERSION_1_5, +#endif +#ifdef GL_VERSION_2_0 + &__GLEW_VERSION_2_0, +#endif +#ifdef GL_VERSION_2_1 + &__GLEW_VERSION_2_1, +#endif +#ifdef GL_VERSION_3_0 + &__GLEW_VERSION_3_0, +#endif +#ifdef GL_VERSION_3_1 + &__GLEW_VERSION_3_1, +#endif +#ifdef GL_VERSION_3_2 + &__GLEW_VERSION_3_2, +#endif +#ifdef GL_VERSION_3_3 + &__GLEW_VERSION_3_3, +#endif +#ifdef GL_VERSION_4_0 + &__GLEW_VERSION_4_0, +#endif +#ifdef GL_VERSION_4_1 + &__GLEW_VERSION_4_1, +#endif +#ifdef GL_VERSION_4_2 + &__GLEW_VERSION_4_2, +#endif +#ifdef GL_VERSION_4_3 + &__GLEW_VERSION_4_3, +#endif +#ifdef GL_VERSION_4_4 + &__GLEW_VERSION_4_4, +#endif +#ifdef GL_VERSION_4_5 + &__GLEW_VERSION_4_5, +#endif +#ifdef GL_VERSION_4_6 + &__GLEW_VERSION_4_6, +#endif +#ifdef GL_VIV_shader_binary + &__GLEW_VIV_shader_binary, +#endif +#ifdef GL_WIN_phong_shading + &__GLEW_WIN_phong_shading, +#endif +#ifdef GL_WIN_scene_markerXXX + &__GLEW_WIN_scene_markerXXX, +#endif +#ifdef GL_WIN_specular_fog + &__GLEW_WIN_specular_fog, +#endif +#ifdef GL_WIN_swap_hint + &__GLEW_WIN_swap_hint, +#endif + NULL +}; + +static GLboolean _glewInit_GL_VERSION_1_2 (); +static GLboolean _glewInit_GL_VERSION_1_3 (); +static GLboolean _glewInit_GL_VERSION_1_4 (); +static GLboolean _glewInit_GL_VERSION_1_5 (); +static GLboolean _glewInit_GL_VERSION_2_0 (); +static GLboolean _glewInit_GL_VERSION_2_1 (); +static GLboolean _glewInit_GL_VERSION_3_0 (); +static GLboolean _glewInit_GL_VERSION_3_1 (); +static GLboolean _glewInit_GL_VERSION_3_2 (); +static GLboolean _glewInit_GL_VERSION_3_3 (); +static GLboolean _glewInit_GL_VERSION_4_0 (); +static GLboolean _glewInit_GL_VERSION_4_5 (); +static GLboolean _glewInit_GL_VERSION_4_6 (); +static GLboolean _glewInit_GL_3DFX_tbuffer (); +static GLboolean _glewInit_GL_AMD_debug_output (); +static GLboolean _glewInit_GL_AMD_draw_buffers_blend (); +static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced (); +static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions (); +static GLboolean _glewInit_GL_AMD_interleaved_elements (); +static GLboolean _glewInit_GL_AMD_multi_draw_indirect (); +static GLboolean _glewInit_GL_AMD_name_gen_delete (); +static GLboolean _glewInit_GL_AMD_occlusion_query_event (); +static GLboolean _glewInit_GL_AMD_performance_monitor (); +static GLboolean _glewInit_GL_AMD_sample_positions (); +static GLboolean _glewInit_GL_AMD_sparse_texture (); +static GLboolean _glewInit_GL_AMD_stencil_operation_extended (); +static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (); +static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (); +static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (); +static GLboolean _glewInit_GL_ANGLE_instanced_arrays (); +static GLboolean _glewInit_GL_ANGLE_timer_query (); +static GLboolean _glewInit_GL_ANGLE_translated_shader_source (); +static GLboolean _glewInit_GL_APPLE_copy_texture_levels (); +static GLboolean _glewInit_GL_APPLE_element_array (); +static GLboolean _glewInit_GL_APPLE_fence (); +static GLboolean _glewInit_GL_APPLE_flush_buffer_range (); +static GLboolean _glewInit_GL_APPLE_framebuffer_multisample (); +static GLboolean _glewInit_GL_APPLE_object_purgeable (); +static GLboolean _glewInit_GL_APPLE_sync (); +static GLboolean _glewInit_GL_APPLE_texture_range (); +static GLboolean _glewInit_GL_APPLE_vertex_array_object (); +static GLboolean _glewInit_GL_APPLE_vertex_array_range (); +static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (); +static GLboolean _glewInit_GL_ARB_ES2_compatibility (); +static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (); +static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (); +static GLboolean _glewInit_GL_ARB_base_instance (); +static GLboolean _glewInit_GL_ARB_bindless_texture (); +static GLboolean _glewInit_GL_ARB_blend_func_extended (); +static GLboolean _glewInit_GL_ARB_buffer_storage (); +static GLboolean _glewInit_GL_ARB_cl_event (); +static GLboolean _glewInit_GL_ARB_clear_buffer_object (); +static GLboolean _glewInit_GL_ARB_clear_texture (); +static GLboolean _glewInit_GL_ARB_clip_control (); +static GLboolean _glewInit_GL_ARB_color_buffer_float (); +static GLboolean _glewInit_GL_ARB_compute_shader (); +static GLboolean _glewInit_GL_ARB_compute_variable_group_size (); +static GLboolean _glewInit_GL_ARB_copy_buffer (); +static GLboolean _glewInit_GL_ARB_copy_image (); +static GLboolean _glewInit_GL_ARB_debug_output (); +static GLboolean _glewInit_GL_ARB_direct_state_access (); +static GLboolean _glewInit_GL_ARB_draw_buffers (); +static GLboolean _glewInit_GL_ARB_draw_buffers_blend (); +static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (); +static GLboolean _glewInit_GL_ARB_draw_indirect (); +static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (); +static GLboolean _glewInit_GL_ARB_framebuffer_object (); +static GLboolean _glewInit_GL_ARB_geometry_shader4 (); +static GLboolean _glewInit_GL_ARB_get_program_binary (); +static GLboolean _glewInit_GL_ARB_get_texture_sub_image (); +static GLboolean _glewInit_GL_ARB_gl_spirv (); +static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (); +static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (); +static GLboolean _glewInit_GL_ARB_imaging (); +static GLboolean _glewInit_GL_ARB_indirect_parameters (); +static GLboolean _glewInit_GL_ARB_instanced_arrays (); +static GLboolean _glewInit_GL_ARB_internalformat_query (); +static GLboolean _glewInit_GL_ARB_internalformat_query2 (); +static GLboolean _glewInit_GL_ARB_invalidate_subdata (); +static GLboolean _glewInit_GL_ARB_map_buffer_range (); +static GLboolean _glewInit_GL_ARB_matrix_palette (); +static GLboolean _glewInit_GL_ARB_multi_bind (); +static GLboolean _glewInit_GL_ARB_multi_draw_indirect (); +static GLboolean _glewInit_GL_ARB_multisample (); +static GLboolean _glewInit_GL_ARB_multitexture (); +static GLboolean _glewInit_GL_ARB_occlusion_query (); +static GLboolean _glewInit_GL_ARB_parallel_shader_compile (); +static GLboolean _glewInit_GL_ARB_point_parameters (); +static GLboolean _glewInit_GL_ARB_polygon_offset_clamp (); +static GLboolean _glewInit_GL_ARB_program_interface_query (); +static GLboolean _glewInit_GL_ARB_provoking_vertex (); +static GLboolean _glewInit_GL_ARB_robustness (); +static GLboolean _glewInit_GL_ARB_sample_locations (); +static GLboolean _glewInit_GL_ARB_sample_shading (); +static GLboolean _glewInit_GL_ARB_sampler_objects (); +static GLboolean _glewInit_GL_ARB_separate_shader_objects (); +static GLboolean _glewInit_GL_ARB_shader_atomic_counters (); +static GLboolean _glewInit_GL_ARB_shader_image_load_store (); +static GLboolean _glewInit_GL_ARB_shader_objects (); +static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (); +static GLboolean _glewInit_GL_ARB_shader_subroutine (); +static GLboolean _glewInit_GL_ARB_shading_language_include (); +static GLboolean _glewInit_GL_ARB_sparse_buffer (); +static GLboolean _glewInit_GL_ARB_sparse_texture (); +static GLboolean _glewInit_GL_ARB_sync (); +static GLboolean _glewInit_GL_ARB_tessellation_shader (); +static GLboolean _glewInit_GL_ARB_texture_barrier (); +static GLboolean _glewInit_GL_ARB_texture_buffer_object (); +static GLboolean _glewInit_GL_ARB_texture_buffer_range (); +static GLboolean _glewInit_GL_ARB_texture_compression (); +static GLboolean _glewInit_GL_ARB_texture_multisample (); +static GLboolean _glewInit_GL_ARB_texture_storage (); +static GLboolean _glewInit_GL_ARB_texture_storage_multisample (); +static GLboolean _glewInit_GL_ARB_texture_view (); +static GLboolean _glewInit_GL_ARB_timer_query (); +static GLboolean _glewInit_GL_ARB_transform_feedback2 (); +static GLboolean _glewInit_GL_ARB_transform_feedback3 (); +static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (); +static GLboolean _glewInit_GL_ARB_transpose_matrix (); +static GLboolean _glewInit_GL_ARB_uniform_buffer_object (); +static GLboolean _glewInit_GL_ARB_vertex_array_object (); +static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (); +static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (); +static GLboolean _glewInit_GL_ARB_vertex_blend (); +static GLboolean _glewInit_GL_ARB_vertex_buffer_object (); +static GLboolean _glewInit_GL_ARB_vertex_program (); +static GLboolean _glewInit_GL_ARB_vertex_shader (); +static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (); +static GLboolean _glewInit_GL_ARB_viewport_array (); +static GLboolean _glewInit_GL_ARB_window_pos (); +static GLboolean _glewInit_GL_ATI_draw_buffers (); +static GLboolean _glewInit_GL_ATI_element_array (); +static GLboolean _glewInit_GL_ATI_envmap_bumpmap (); +static GLboolean _glewInit_GL_ATI_fragment_shader (); +static GLboolean _glewInit_GL_ATI_map_object_buffer (); +static GLboolean _glewInit_GL_ATI_pn_triangles (); +static GLboolean _glewInit_GL_ATI_separate_stencil (); +static GLboolean _glewInit_GL_ATI_vertex_array_object (); +static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (); +static GLboolean _glewInit_GL_ATI_vertex_streams (); +static GLboolean _glewInit_GL_EXT_EGL_image_storage (); +static GLboolean _glewInit_GL_EXT_base_instance (); +static GLboolean _glewInit_GL_EXT_bindable_uniform (); +static GLboolean _glewInit_GL_EXT_blend_color (); +static GLboolean _glewInit_GL_EXT_blend_equation_separate (); +static GLboolean _glewInit_GL_EXT_blend_func_extended (); +static GLboolean _glewInit_GL_EXT_blend_func_separate (); +static GLboolean _glewInit_GL_EXT_blend_minmax (); +static GLboolean _glewInit_GL_EXT_buffer_storage (); +static GLboolean _glewInit_GL_EXT_clear_texture (); +static GLboolean _glewInit_GL_EXT_clip_control (); +static GLboolean _glewInit_GL_EXT_color_subtable (); +static GLboolean _glewInit_GL_EXT_compiled_vertex_array (); +static GLboolean _glewInit_GL_EXT_convolution (); +static GLboolean _glewInit_GL_EXT_coordinate_frame (); +static GLboolean _glewInit_GL_EXT_copy_image (); +static GLboolean _glewInit_GL_EXT_copy_texture (); +static GLboolean _glewInit_GL_EXT_cull_vertex (); +static GLboolean _glewInit_GL_EXT_debug_label (); +static GLboolean _glewInit_GL_EXT_debug_marker (); +static GLboolean _glewInit_GL_EXT_depth_bounds_test (); +static GLboolean _glewInit_GL_EXT_direct_state_access (); +static GLboolean _glewInit_GL_EXT_discard_framebuffer (); +static GLboolean _glewInit_GL_EXT_disjoint_timer_query (); +static GLboolean _glewInit_GL_EXT_draw_buffers (); +static GLboolean _glewInit_GL_EXT_draw_buffers2 (); +static GLboolean _glewInit_GL_EXT_draw_buffers_indexed (); +static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex (); +static GLboolean _glewInit_GL_EXT_draw_instanced (); +static GLboolean _glewInit_GL_EXT_draw_range_elements (); +static GLboolean _glewInit_GL_EXT_draw_transform_feedback (); +static GLboolean _glewInit_GL_EXT_external_buffer (); +static GLboolean _glewInit_GL_EXT_fog_coord (); +static GLboolean _glewInit_GL_EXT_fragment_lighting (); +static GLboolean _glewInit_GL_EXT_framebuffer_blit (); +static GLboolean _glewInit_GL_EXT_framebuffer_multisample (); +static GLboolean _glewInit_GL_EXT_framebuffer_object (); +static GLboolean _glewInit_GL_EXT_geometry_shader4 (); +static GLboolean _glewInit_GL_EXT_gpu_program_parameters (); +static GLboolean _glewInit_GL_EXT_gpu_shader4 (); +static GLboolean _glewInit_GL_EXT_histogram (); +static GLboolean _glewInit_GL_EXT_index_func (); +static GLboolean _glewInit_GL_EXT_index_material (); +static GLboolean _glewInit_GL_EXT_instanced_arrays (); +static GLboolean _glewInit_GL_EXT_light_texture (); +static GLboolean _glewInit_GL_EXT_map_buffer_range (); +static GLboolean _glewInit_GL_EXT_memory_object (); +static GLboolean _glewInit_GL_EXT_memory_object_fd (); +static GLboolean _glewInit_GL_EXT_memory_object_win32 (); +static GLboolean _glewInit_GL_EXT_multi_draw_arrays (); +static GLboolean _glewInit_GL_EXT_multi_draw_indirect (); +static GLboolean _glewInit_GL_EXT_multisample (); +static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_EXT_multiview_draw_buffers (); +static GLboolean _glewInit_GL_EXT_paletted_texture (); +static GLboolean _glewInit_GL_EXT_pixel_transform (); +static GLboolean _glewInit_GL_EXT_point_parameters (); +static GLboolean _glewInit_GL_EXT_polygon_offset (); +static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (); +static GLboolean _glewInit_GL_EXT_primitive_bounding_box (); +static GLboolean _glewInit_GL_EXT_provoking_vertex (); +static GLboolean _glewInit_GL_EXT_raster_multisample (); +static GLboolean _glewInit_GL_EXT_robustness (); +static GLboolean _glewInit_GL_EXT_scene_marker (); +static GLboolean _glewInit_GL_EXT_secondary_color (); +static GLboolean _glewInit_GL_EXT_semaphore (); +static GLboolean _glewInit_GL_EXT_semaphore_fd (); +static GLboolean _glewInit_GL_EXT_semaphore_win32 (); +static GLboolean _glewInit_GL_EXT_separate_shader_objects (); +static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch (); +static GLboolean _glewInit_GL_EXT_shader_image_load_store (); +static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 (); +static GLboolean _glewInit_GL_EXT_sparse_texture (); +static GLboolean _glewInit_GL_EXT_stencil_two_side (); +static GLboolean _glewInit_GL_EXT_subtexture (); +static GLboolean _glewInit_GL_EXT_tessellation_point_size (); +static GLboolean _glewInit_GL_EXT_texture3D (); +static GLboolean _glewInit_GL_EXT_texture_array (); +static GLboolean _glewInit_GL_EXT_texture_border_clamp (); +static GLboolean _glewInit_GL_EXT_texture_buffer_object (); +static GLboolean _glewInit_GL_EXT_texture_integer (); +static GLboolean _glewInit_GL_EXT_texture_object (); +static GLboolean _glewInit_GL_EXT_texture_perturb_normal (); +static GLboolean _glewInit_GL_EXT_texture_storage (); +static GLboolean _glewInit_GL_EXT_texture_view (); +static GLboolean _glewInit_GL_EXT_timer_query (); +static GLboolean _glewInit_GL_EXT_transform_feedback (); +static GLboolean _glewInit_GL_EXT_vertex_array (); +static GLboolean _glewInit_GL_EXT_vertex_array_setXXX (); +static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (); +static GLboolean _glewInit_GL_EXT_vertex_shader (); +static GLboolean _glewInit_GL_EXT_vertex_weighting (); +static GLboolean _glewInit_GL_EXT_win32_keyed_mutex (); +static GLboolean _glewInit_GL_EXT_window_rectangles (); +static GLboolean _glewInit_GL_EXT_x11_sync_object (); +static GLboolean _glewInit_GL_GREMEDY_frame_terminator (); +static GLboolean _glewInit_GL_GREMEDY_string_marker (); +static GLboolean _glewInit_GL_HP_image_transform (); +static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (); +static GLboolean _glewInit_GL_IBM_vertex_array_lists (); +static GLboolean _glewInit_GL_IMG_bindless_texture (); +static GLboolean _glewInit_GL_IMG_framebuffer_downsample (); +static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_INTEL_map_texture (); +static GLboolean _glewInit_GL_INTEL_parallel_arrays (); +static GLboolean _glewInit_GL_INTEL_performance_query (); +static GLboolean _glewInit_GL_INTEL_texture_scissor (); +static GLboolean _glewInit_GL_KHR_blend_equation_advanced (); +static GLboolean _glewInit_GL_KHR_debug (); +static GLboolean _glewInit_GL_KHR_parallel_shader_compile (); +static GLboolean _glewInit_GL_KHR_robustness (); +static GLboolean _glewInit_GL_KTX_buffer_region (); +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y (); +static GLboolean _glewInit_GL_MESA_resize_buffers (); +static GLboolean _glewInit_GL_MESA_window_pos (); +static GLboolean _glewInit_GL_NVX_conditional_render (); +static GLboolean _glewInit_GL_NVX_gpu_multicast2 (); +static GLboolean _glewInit_GL_NVX_linked_gpu_multicast (); +static GLboolean _glewInit_GL_NVX_progress_fence (); +static GLboolean _glewInit_GL_NV_3dvision_settings (); +static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control (); +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (); +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (); +static GLboolean _glewInit_GL_NV_bindless_texture (); +static GLboolean _glewInit_GL_NV_blend_equation_advanced (); +static GLboolean _glewInit_GL_NV_clip_space_w_scaling (); +static GLboolean _glewInit_GL_NV_command_list (); +static GLboolean _glewInit_GL_NV_conditional_render (); +static GLboolean _glewInit_GL_NV_conservative_raster (); +static GLboolean _glewInit_GL_NV_conservative_raster_dilate (); +static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles (); +static GLboolean _glewInit_GL_NV_copy_buffer (); +static GLboolean _glewInit_GL_NV_copy_image (); +static GLboolean _glewInit_GL_NV_depth_buffer_float (); +static GLboolean _glewInit_GL_NV_draw_buffers (); +static GLboolean _glewInit_GL_NV_draw_instanced (); +static GLboolean _glewInit_GL_NV_draw_texture (); +static GLboolean _glewInit_GL_NV_draw_vulkan_image (); +static GLboolean _glewInit_GL_NV_evaluators (); +static GLboolean _glewInit_GL_NV_explicit_multisample (); +static GLboolean _glewInit_GL_NV_fence (); +static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (); +static GLboolean _glewInit_GL_NV_fragment_program (); +static GLboolean _glewInit_GL_NV_framebuffer_blit (); +static GLboolean _glewInit_GL_NV_framebuffer_multisample (); +static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (); +static GLboolean _glewInit_GL_NV_geometry_program4 (); +static GLboolean _glewInit_GL_NV_gpu_multicast (); +static GLboolean _glewInit_GL_NV_gpu_program4 (); +static GLboolean _glewInit_GL_NV_gpu_shader5 (); +static GLboolean _glewInit_GL_NV_half_float (); +static GLboolean _glewInit_GL_NV_instanced_arrays (); +static GLboolean _glewInit_GL_NV_internalformat_sample_query (); +static GLboolean _glewInit_GL_NV_memory_attachment (); +static GLboolean _glewInit_GL_NV_mesh_shader (); +static GLboolean _glewInit_GL_NV_non_square_matrices (); +static GLboolean _glewInit_GL_NV_occlusion_query (); +static GLboolean _glewInit_GL_NV_parameter_buffer_object (); +static GLboolean _glewInit_GL_NV_path_rendering (); +static GLboolean _glewInit_GL_NV_pixel_data_range (); +static GLboolean _glewInit_GL_NV_point_sprite (); +static GLboolean _glewInit_GL_NV_polygon_mode (); +static GLboolean _glewInit_GL_NV_present_video (); +static GLboolean _glewInit_GL_NV_primitive_restart (); +static GLboolean _glewInit_GL_NV_read_buffer (); +static GLboolean _glewInit_GL_NV_register_combiners (); +static GLboolean _glewInit_GL_NV_register_combiners2 (); +static GLboolean _glewInit_GL_NV_sample_locations (); +static GLboolean _glewInit_GL_NV_scissor_exclusive (); +static GLboolean _glewInit_GL_NV_shader_buffer_load (); +static GLboolean _glewInit_GL_NV_shading_rate_image (); +static GLboolean _glewInit_GL_NV_texture_array (); +static GLboolean _glewInit_GL_NV_texture_barrier (); +static GLboolean _glewInit_GL_NV_texture_multisample (); +static GLboolean _glewInit_GL_NV_transform_feedback (); +static GLboolean _glewInit_GL_NV_transform_feedback2 (); +static GLboolean _glewInit_GL_NV_vdpau_interop (); +static GLboolean _glewInit_GL_NV_vdpau_interop2 (); +static GLboolean _glewInit_GL_NV_vertex_array_range (); +static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (); +static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (); +static GLboolean _glewInit_GL_NV_vertex_program (); +static GLboolean _glewInit_GL_NV_video_capture (); +static GLboolean _glewInit_GL_NV_viewport_array (); +static GLboolean _glewInit_GL_NV_viewport_swizzle (); +static GLboolean _glewInit_GL_OES_EGL_image (); +static GLboolean _glewInit_GL_OES_blend_equation_separate (); +static GLboolean _glewInit_GL_OES_blend_func_separate (); +static GLboolean _glewInit_GL_OES_blend_subtract (); +static GLboolean _glewInit_GL_OES_copy_image (); +static GLboolean _glewInit_GL_OES_draw_buffers_indexed (); +static GLboolean _glewInit_GL_OES_framebuffer_object (); +static GLboolean _glewInit_GL_OES_get_program_binary (); +static GLboolean _glewInit_GL_OES_mapbuffer (); +static GLboolean _glewInit_GL_OES_matrix_palette (); +static GLboolean _glewInit_GL_OES_sample_shading (); +static GLboolean _glewInit_GL_OES_single_precision (); +static GLboolean _glewInit_GL_OES_texture_3D (); +static GLboolean _glewInit_GL_OES_texture_border_clamp (); +static GLboolean _glewInit_GL_OES_texture_buffer (); +static GLboolean _glewInit_GL_OES_texture_cube_map (); +static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array (); +static GLboolean _glewInit_GL_OES_texture_view (); +static GLboolean _glewInit_GL_OES_vertex_array_object (); +static GLboolean _glewInit_GL_OVR_multiview (); +static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_QCOM_alpha_test (); +static GLboolean _glewInit_GL_QCOM_driver_control (); +static GLboolean _glewInit_GL_QCOM_extended_get (); +static GLboolean _glewInit_GL_QCOM_extended_get2 (); +static GLboolean _glewInit_GL_QCOM_framebuffer_foveated (); +static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent (); +static GLboolean _glewInit_GL_QCOM_texture_foveated (); +static GLboolean _glewInit_GL_QCOM_tiled_rendering (); +static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (); +static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (); +static GLboolean _glewInit_GL_REGAL_error_string (); +static GLboolean _glewInit_GL_REGAL_extension_query (); +static GLboolean _glewInit_GL_REGAL_log (); +static GLboolean _glewInit_GL_REGAL_proc_address (); +static GLboolean _glewInit_GL_SGIS_detail_texture (); +static GLboolean _glewInit_GL_SGIS_fog_function (); +static GLboolean _glewInit_GL_SGIS_multisample (); +static GLboolean _glewInit_GL_SGIS_multitexture (); +static GLboolean _glewInit_GL_SGIS_shared_multisample (); +static GLboolean _glewInit_GL_SGIS_sharpen_texture (); +static GLboolean _glewInit_GL_SGIS_texture4D (); +static GLboolean _glewInit_GL_SGIS_texture_filter4 (); +static GLboolean _glewInit_GL_SGIX_async (); +static GLboolean _glewInit_GL_SGIX_datapipe (); +static GLboolean _glewInit_GL_SGIX_flush_raster (); +static GLboolean _glewInit_GL_SGIX_fog_layers (); +static GLboolean _glewInit_GL_SGIX_fog_texture (); +static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (); +static GLboolean _glewInit_GL_SGIX_framezoom (); +static GLboolean _glewInit_GL_SGIX_igloo_interface (); +static GLboolean _glewInit_GL_SGIX_mpeg1 (); +static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex (); +static GLboolean _glewInit_GL_SGIX_pixel_texture (); +static GLboolean _glewInit_GL_SGIX_polynomial_ffd (); +static GLboolean _glewInit_GL_SGIX_quad_mesh (); +static GLboolean _glewInit_GL_SGIX_reference_plane (); +static GLboolean _glewInit_GL_SGIX_sprite (); +static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (); +static GLboolean _glewInit_GL_SGIX_vector_ops (); +static GLboolean _glewInit_GL_SGIX_vertex_array_object (); +static GLboolean _glewInit_GL_SGI_color_table (); +static GLboolean _glewInit_GL_SGI_fft (); +static GLboolean _glewInit_GL_SUNX_constant_data (); +static GLboolean _glewInit_GL_SUN_global_alpha (); +static GLboolean _glewInit_GL_SUN_read_video_pixels (); +static GLboolean _glewInit_GL_SUN_triangle_list (); +static GLboolean _glewInit_GL_SUN_vertex (); +static GLboolean _glewInit_GL_WIN_swap_hint (); #ifdef GL_VERSION_1_2 -static GLboolean _glewInit_GL_VERSION_1_2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_2 () { GLboolean r = GL_FALSE; @@ -3581,7 +10412,7 @@ static GLboolean _glewInit_GL_VERSION_1_2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_3 -static GLboolean _glewInit_GL_VERSION_1_3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_3 () { GLboolean r = GL_FALSE; @@ -3639,7 +10470,7 @@ static GLboolean _glewInit_GL_VERSION_1_3 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_4 -static GLboolean _glewInit_GL_VERSION_1_4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_4 () { GLboolean r = GL_FALSE; @@ -3698,7 +10529,7 @@ static GLboolean _glewInit_GL_VERSION_1_4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_5 -static GLboolean _glewInit_GL_VERSION_1_5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_5 () { GLboolean r = GL_FALSE; @@ -3729,7 +10560,7 @@ static GLboolean _glewInit_GL_VERSION_1_5 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_2_0 -static GLboolean _glewInit_GL_VERSION_2_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_2_0 () { GLboolean r = GL_FALSE; @@ -3834,7 +10665,7 @@ static GLboolean _glewInit_GL_VERSION_2_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_2_1 -static GLboolean _glewInit_GL_VERSION_2_1 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_2_1 () { GLboolean r = GL_FALSE; @@ -3852,10 +10683,15 @@ static GLboolean _glewInit_GL_VERSION_2_1 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_0 -static GLboolean _glewInit_GL_VERSION_3_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_0 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_framebuffer_object() || r; + r = _glewInit_GL_ARB_map_buffer_range() || r; + r = _glewInit_GL_ARB_uniform_buffer_object() || r; + r = _glewInit_GL_ARB_vertex_array_object() || r; + r = ((glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRender")) == NULL) || r; r = ((glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedback")) == NULL) || r; r = ((glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocation")) == NULL) || r; @@ -3919,10 +10755,12 @@ static GLboolean _glewInit_GL_VERSION_3_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_1 -static GLboolean _glewInit_GL_VERSION_3_1 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_1 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_copy_buffer() || r; + r = ((glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstanced")) == NULL) || r; r = ((glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstanced")) == NULL) || r; r = ((glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndex")) == NULL) || r; @@ -3935,10 +10773,15 @@ static GLboolean _glewInit_GL_VERSION_3_1 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_2 -static GLboolean _glewInit_GL_VERSION_3_2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_2 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_draw_elements_base_vertex() || r; + r = _glewInit_GL_ARB_provoking_vertex() || r; + r = _glewInit_GL_ARB_sync() || r; + r = _glewInit_GL_ARB_texture_multisample() || r; + r = ((glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture")) == NULL) || r; r = ((glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteri64v")) == NULL) || r; r = ((glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64i_v")) == NULL) || r; @@ -3950,7 +10793,7 @@ static GLboolean _glewInit_GL_VERSION_3_2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_3 -static GLboolean _glewInit_GL_VERSION_3_3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_3 () { GLboolean r = GL_FALSE; @@ -3963,7 +10806,7 @@ static GLboolean _glewInit_GL_VERSION_3_3 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_4_0 -static GLboolean _glewInit_GL_VERSION_4_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_4_0 () { GLboolean r = GL_FALSE; @@ -3980,7 +10823,7 @@ static GLboolean _glewInit_GL_VERSION_4_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_4_5 -static GLboolean _glewInit_GL_VERSION_4_5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_4_5 () { GLboolean r = GL_FALSE; @@ -3994,9 +10837,24 @@ static GLboolean _glewInit_GL_VERSION_4_5 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_VERSION_4_5 */ +#ifdef GL_VERSION_4_6 + +static GLboolean _glewInit_GL_VERSION_4_6 () +{ + GLboolean r = GL_FALSE; + + r = ((glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCount")) == NULL) || r; + r = ((glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCount")) == NULL) || r; + r = ((glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShader")) == NULL) || r; + + return r; +} + +#endif /* GL_VERSION_4_6 */ + #ifdef GL_3DFX_tbuffer -static GLboolean _glewInit_GL_3DFX_tbuffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_3DFX_tbuffer () { GLboolean r = GL_FALSE; @@ -4009,7 +10867,7 @@ static GLboolean _glewInit_GL_3DFX_tbuffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_debug_output -static GLboolean _glewInit_GL_AMD_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_debug_output () { GLboolean r = GL_FALSE; @@ -4025,7 +10883,7 @@ static GLboolean _glewInit_GL_AMD_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_draw_buffers_blend -static GLboolean _glewInit_GL_AMD_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_draw_buffers_blend () { GLboolean r = GL_FALSE; @@ -4039,9 +10897,39 @@ static GLboolean _glewInit_GL_AMD_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_AMD_draw_buffers_blend */ +#ifdef GL_AMD_framebuffer_multisample_advanced + +static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced () +{ + GLboolean r = GL_FALSE; + + r = ((glNamedRenderbufferStorageMultisampleAdvancedAMD = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r; + r = ((glRenderbufferStorageMultisampleAdvancedAMD = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r; + + return r; +} + +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +#ifdef GL_AMD_framebuffer_sample_positions + +static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferSamplePositionsfvAMD = (PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSamplePositionsfvAMD")) == NULL) || r; + r = ((glGetFramebufferParameterfvAMD = (PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterfvAMD")) == NULL) || r; + r = ((glGetNamedFramebufferParameterfvAMD = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterfvAMD")) == NULL) || r; + r = ((glNamedFramebufferSamplePositionsfvAMD = (PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSamplePositionsfvAMD")) == NULL) || r; + + return r; +} + +#endif /* GL_AMD_framebuffer_sample_positions */ + #ifdef GL_AMD_interleaved_elements -static GLboolean _glewInit_GL_AMD_interleaved_elements (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_interleaved_elements () { GLboolean r = GL_FALSE; @@ -4054,7 +10942,7 @@ static GLboolean _glewInit_GL_AMD_interleaved_elements (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_AMD_multi_draw_indirect -static GLboolean _glewInit_GL_AMD_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -4068,7 +10956,7 @@ static GLboolean _glewInit_GL_AMD_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_AMD_name_gen_delete -static GLboolean _glewInit_GL_AMD_name_gen_delete (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_name_gen_delete () { GLboolean r = GL_FALSE; @@ -4083,7 +10971,7 @@ static GLboolean _glewInit_GL_AMD_name_gen_delete (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_occlusion_query_event -static GLboolean _glewInit_GL_AMD_occlusion_query_event (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_occlusion_query_event () { GLboolean r = GL_FALSE; @@ -4096,7 +10984,7 @@ static GLboolean _glewInit_GL_AMD_occlusion_query_event (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_AMD_performance_monitor -static GLboolean _glewInit_GL_AMD_performance_monitor (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_performance_monitor () { GLboolean r = GL_FALSE; @@ -4119,7 +11007,7 @@ static GLboolean _glewInit_GL_AMD_performance_monitor (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_AMD_sample_positions -static GLboolean _glewInit_GL_AMD_sample_positions (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_sample_positions () { GLboolean r = GL_FALSE; @@ -4132,7 +11020,7 @@ static GLboolean _glewInit_GL_AMD_sample_positions (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_sparse_texture -static GLboolean _glewInit_GL_AMD_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_sparse_texture () { GLboolean r = GL_FALSE; @@ -4146,7 +11034,7 @@ static GLboolean _glewInit_GL_AMD_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_stencil_operation_extended -static GLboolean _glewInit_GL_AMD_stencil_operation_extended (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_stencil_operation_extended () { GLboolean r = GL_FALSE; @@ -4159,7 +11047,7 @@ static GLboolean _glewInit_GL_AMD_stencil_operation_extended (GLEW_CONTEXT_ARG_D #ifdef GL_AMD_vertex_shader_tessellator -static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator () { GLboolean r = GL_FALSE; @@ -4173,7 +11061,7 @@ static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (GLEW_CONTEXT_ARG_DE #ifdef GL_ANGLE_framebuffer_blit -static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_framebuffer_blit () { GLboolean r = GL_FALSE; @@ -4186,7 +11074,7 @@ static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_framebuffer_multisample -static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample () { GLboolean r = GL_FALSE; @@ -4199,7 +11087,7 @@ static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (GLEW_CONTEXT_ARG_DE #ifdef GL_ANGLE_instanced_arrays -static GLboolean _glewInit_GL_ANGLE_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_instanced_arrays () { GLboolean r = GL_FALSE; @@ -4214,7 +11102,7 @@ static GLboolean _glewInit_GL_ANGLE_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_timer_query -static GLboolean _glewInit_GL_ANGLE_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_timer_query () { GLboolean r = GL_FALSE; @@ -4237,7 +11125,7 @@ static GLboolean _glewInit_GL_ANGLE_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_translated_shader_source -static GLboolean _glewInit_GL_ANGLE_translated_shader_source (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_translated_shader_source () { GLboolean r = GL_FALSE; @@ -4248,9 +11136,22 @@ static GLboolean _glewInit_GL_ANGLE_translated_shader_source (GLEW_CONTEXT_ARG_D #endif /* GL_ANGLE_translated_shader_source */ +#ifdef GL_APPLE_copy_texture_levels + +static GLboolean _glewInit_GL_APPLE_copy_texture_levels () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureLevelsAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_copy_texture_levels */ + #ifdef GL_APPLE_element_array -static GLboolean _glewInit_GL_APPLE_element_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_element_array () { GLboolean r = GL_FALSE; @@ -4267,7 +11168,7 @@ static GLboolean _glewInit_GL_APPLE_element_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_fence -static GLboolean _glewInit_GL_APPLE_fence (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_fence () { GLboolean r = GL_FALSE; @@ -4287,7 +11188,7 @@ static GLboolean _glewInit_GL_APPLE_fence (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_flush_buffer_range -static GLboolean _glewInit_GL_APPLE_flush_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_flush_buffer_range () { GLboolean r = GL_FALSE; @@ -4299,9 +11200,23 @@ static GLboolean _glewInit_GL_APPLE_flush_buffer_range (GLEW_CONTEXT_ARG_DEF_INI #endif /* GL_APPLE_flush_buffer_range */ +#ifdef GL_APPLE_framebuffer_multisample + +static GLboolean _glewInit_GL_APPLE_framebuffer_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glRenderbufferStorageMultisampleAPPLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAPPLE")) == NULL) || r; + r = ((glResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glResolveMultisampleFramebufferAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_framebuffer_multisample */ + #ifdef GL_APPLE_object_purgeable -static GLboolean _glewInit_GL_APPLE_object_purgeable (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_object_purgeable () { GLboolean r = GL_FALSE; @@ -4314,9 +11229,28 @@ static GLboolean _glewInit_GL_APPLE_object_purgeable (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_APPLE_object_purgeable */ +#ifdef GL_APPLE_sync + +static GLboolean _glewInit_GL_APPLE_sync () +{ + GLboolean r = GL_FALSE; + + r = ((glClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSyncAPPLE")) == NULL) || r; + r = ((glDeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteSyncAPPLE")) == NULL) || r; + r = ((glFenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFenceSyncAPPLE")) == NULL) || r; + r = ((glGetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vAPPLE")) == NULL) || r; + r = ((glGetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetSyncivAPPLE")) == NULL) || r; + r = ((glIsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsSyncAPPLE")) == NULL) || r; + r = ((glWaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glWaitSyncAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_sync */ + #ifdef GL_APPLE_texture_range -static GLboolean _glewInit_GL_APPLE_texture_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_texture_range () { GLboolean r = GL_FALSE; @@ -4330,7 +11264,7 @@ static GLboolean _glewInit_GL_APPLE_texture_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_vertex_array_object -static GLboolean _glewInit_GL_APPLE_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_array_object () { GLboolean r = GL_FALSE; @@ -4346,7 +11280,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_array_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_APPLE_vertex_array_range -static GLboolean _glewInit_GL_APPLE_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_array_range () { GLboolean r = GL_FALSE; @@ -4361,7 +11295,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_APPLE_vertex_program_evaluators -static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators () { GLboolean r = GL_FALSE; @@ -4380,7 +11314,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_ES2_compatibility -static GLboolean _glewInit_GL_ARB_ES2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES2_compatibility () { GLboolean r = GL_FALSE; @@ -4397,7 +11331,7 @@ static GLboolean _glewInit_GL_ARB_ES2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_ES3_1_compatibility -static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES3_1_compatibility () { GLboolean r = GL_FALSE; @@ -4410,7 +11344,7 @@ static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_ES3_2_compatibility -static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES3_2_compatibility () { GLboolean r = GL_FALSE; @@ -4423,7 +11357,7 @@ static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_base_instance -static GLboolean _glewInit_GL_ARB_base_instance (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_base_instance () { GLboolean r = GL_FALSE; @@ -4438,7 +11372,7 @@ static GLboolean _glewInit_GL_ARB_base_instance (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_bindless_texture -static GLboolean _glewInit_GL_ARB_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_bindless_texture () { GLboolean r = GL_FALSE; @@ -4466,7 +11400,7 @@ static GLboolean _glewInit_GL_ARB_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_blend_func_extended -static GLboolean _glewInit_GL_ARB_blend_func_extended (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_blend_func_extended () { GLboolean r = GL_FALSE; @@ -4480,12 +11414,11 @@ static GLboolean _glewInit_GL_ARB_blend_func_extended (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_buffer_storage -static GLboolean _glewInit_GL_ARB_buffer_storage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_buffer_storage () { GLboolean r = GL_FALSE; r = ((glBufferStorage = (PFNGLBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glBufferStorage")) == NULL) || r; - r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r; return r; } @@ -4494,7 +11427,7 @@ static GLboolean _glewInit_GL_ARB_buffer_storage (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_cl_event -static GLboolean _glewInit_GL_ARB_cl_event (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_cl_event () { GLboolean r = GL_FALSE; @@ -4507,7 +11440,7 @@ static GLboolean _glewInit_GL_ARB_cl_event (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_clear_buffer_object -static GLboolean _glewInit_GL_ARB_clear_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clear_buffer_object () { GLboolean r = GL_FALSE; @@ -4523,7 +11456,7 @@ static GLboolean _glewInit_GL_ARB_clear_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_clear_texture -static GLboolean _glewInit_GL_ARB_clear_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clear_texture () { GLboolean r = GL_FALSE; @@ -4537,7 +11470,7 @@ static GLboolean _glewInit_GL_ARB_clear_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_clip_control -static GLboolean _glewInit_GL_ARB_clip_control (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clip_control () { GLboolean r = GL_FALSE; @@ -4550,7 +11483,7 @@ static GLboolean _glewInit_GL_ARB_clip_control (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_color_buffer_float -static GLboolean _glewInit_GL_ARB_color_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_color_buffer_float () { GLboolean r = GL_FALSE; @@ -4563,7 +11496,7 @@ static GLboolean _glewInit_GL_ARB_color_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_compute_shader -static GLboolean _glewInit_GL_ARB_compute_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_compute_shader () { GLboolean r = GL_FALSE; @@ -4577,7 +11510,7 @@ static GLboolean _glewInit_GL_ARB_compute_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_compute_variable_group_size -static GLboolean _glewInit_GL_ARB_compute_variable_group_size (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_compute_variable_group_size () { GLboolean r = GL_FALSE; @@ -4590,7 +11523,7 @@ static GLboolean _glewInit_GL_ARB_compute_variable_group_size (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_copy_buffer -static GLboolean _glewInit_GL_ARB_copy_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_copy_buffer () { GLboolean r = GL_FALSE; @@ -4603,7 +11536,7 @@ static GLboolean _glewInit_GL_ARB_copy_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_copy_image -static GLboolean _glewInit_GL_ARB_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_copy_image () { GLboolean r = GL_FALSE; @@ -4616,7 +11549,7 @@ static GLboolean _glewInit_GL_ARB_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_debug_output -static GLboolean _glewInit_GL_ARB_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_debug_output () { GLboolean r = GL_FALSE; @@ -4632,7 +11565,7 @@ static GLboolean _glewInit_GL_ARB_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_direct_state_access -static GLboolean _glewInit_GL_ARB_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_direct_state_access () { GLboolean r = GL_FALSE; @@ -4741,7 +11674,7 @@ static GLboolean _glewInit_GL_ARB_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_draw_buffers -static GLboolean _glewInit_GL_ARB_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_buffers () { GLboolean r = GL_FALSE; @@ -4754,7 +11687,7 @@ static GLboolean _glewInit_GL_ARB_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_draw_buffers_blend -static GLboolean _glewInit_GL_ARB_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_buffers_blend () { GLboolean r = GL_FALSE; @@ -4770,7 +11703,7 @@ static GLboolean _glewInit_GL_ARB_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_draw_elements_base_vertex -static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex () { GLboolean r = GL_FALSE; @@ -4786,7 +11719,7 @@ static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (GLEW_CONTEXT_ARG_DE #ifdef GL_ARB_draw_indirect -static GLboolean _glewInit_GL_ARB_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_indirect () { GLboolean r = GL_FALSE; @@ -4800,7 +11733,7 @@ static GLboolean _glewInit_GL_ARB_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_framebuffer_no_attachments -static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments () { GLboolean r = GL_FALSE; @@ -4816,7 +11749,7 @@ static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (GLEW_CONTEXT_ARG_D #ifdef GL_ARB_framebuffer_object -static GLboolean _glewInit_GL_ARB_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_framebuffer_object () { GLboolean r = GL_FALSE; @@ -4848,7 +11781,7 @@ static GLboolean _glewInit_GL_ARB_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_geometry_shader4 -static GLboolean _glewInit_GL_ARB_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_geometry_shader4 () { GLboolean r = GL_FALSE; @@ -4864,7 +11797,7 @@ static GLboolean _glewInit_GL_ARB_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_get_program_binary -static GLboolean _glewInit_GL_ARB_get_program_binary (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_get_program_binary () { GLboolean r = GL_FALSE; @@ -4879,7 +11812,7 @@ static GLboolean _glewInit_GL_ARB_get_program_binary (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_get_texture_sub_image -static GLboolean _glewInit_GL_ARB_get_texture_sub_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_get_texture_sub_image () { GLboolean r = GL_FALSE; @@ -4891,9 +11824,22 @@ static GLboolean _glewInit_GL_ARB_get_texture_sub_image (GLEW_CONTEXT_ARG_DEF_IN #endif /* GL_ARB_get_texture_sub_image */ +#ifdef GL_ARB_gl_spirv + +static GLboolean _glewInit_GL_ARB_gl_spirv () +{ + GLboolean r = GL_FALSE; + + r = ((glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShaderARB")) == NULL) || r; + + return r; +} + +#endif /* GL_ARB_gl_spirv */ + #ifdef GL_ARB_gpu_shader_fp64 -static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 () { GLboolean r = GL_FALSE; @@ -4923,7 +11869,7 @@ static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_gpu_shader_int64 -static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_gpu_shader_int64 () { GLboolean r = GL_FALSE; @@ -4971,7 +11917,7 @@ static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_imaging -static GLboolean _glewInit_GL_ARB_imaging (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_imaging () { GLboolean r = GL_FALSE; @@ -5016,7 +11962,7 @@ static GLboolean _glewInit_GL_ARB_imaging (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_indirect_parameters -static GLboolean _glewInit_GL_ARB_indirect_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_indirect_parameters () { GLboolean r = GL_FALSE; @@ -5030,7 +11976,7 @@ static GLboolean _glewInit_GL_ARB_indirect_parameters (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_instanced_arrays -static GLboolean _glewInit_GL_ARB_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_instanced_arrays () { GLboolean r = GL_FALSE; @@ -5045,7 +11991,7 @@ static GLboolean _glewInit_GL_ARB_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_internalformat_query -static GLboolean _glewInit_GL_ARB_internalformat_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_internalformat_query () { GLboolean r = GL_FALSE; @@ -5058,7 +12004,7 @@ static GLboolean _glewInit_GL_ARB_internalformat_query (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_internalformat_query2 -static GLboolean _glewInit_GL_ARB_internalformat_query2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_internalformat_query2 () { GLboolean r = GL_FALSE; @@ -5071,7 +12017,7 @@ static GLboolean _glewInit_GL_ARB_internalformat_query2 (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_invalidate_subdata -static GLboolean _glewInit_GL_ARB_invalidate_subdata (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_invalidate_subdata () { GLboolean r = GL_FALSE; @@ -5089,7 +12035,7 @@ static GLboolean _glewInit_GL_ARB_invalidate_subdata (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_map_buffer_range -static GLboolean _glewInit_GL_ARB_map_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_map_buffer_range () { GLboolean r = GL_FALSE; @@ -5103,7 +12049,7 @@ static GLboolean _glewInit_GL_ARB_map_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_matrix_palette -static GLboolean _glewInit_GL_ARB_matrix_palette (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_matrix_palette () { GLboolean r = GL_FALSE; @@ -5120,7 +12066,7 @@ static GLboolean _glewInit_GL_ARB_matrix_palette (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multi_bind -static GLboolean _glewInit_GL_ARB_multi_bind (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multi_bind () { GLboolean r = GL_FALSE; @@ -5138,7 +12084,7 @@ static GLboolean _glewInit_GL_ARB_multi_bind (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multi_draw_indirect -static GLboolean _glewInit_GL_ARB_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -5152,7 +12098,7 @@ static GLboolean _glewInit_GL_ARB_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_multisample -static GLboolean _glewInit_GL_ARB_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multisample () { GLboolean r = GL_FALSE; @@ -5165,7 +12111,7 @@ static GLboolean _glewInit_GL_ARB_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multitexture -static GLboolean _glewInit_GL_ARB_multitexture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multitexture () { GLboolean r = GL_FALSE; @@ -5211,7 +12157,7 @@ static GLboolean _glewInit_GL_ARB_multitexture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_occlusion_query -static GLboolean _glewInit_GL_ARB_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_occlusion_query () { GLboolean r = GL_FALSE; @@ -5231,7 +12177,7 @@ static GLboolean _glewInit_GL_ARB_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_parallel_shader_compile -static GLboolean _glewInit_GL_ARB_parallel_shader_compile (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_parallel_shader_compile () { GLboolean r = GL_FALSE; @@ -5244,7 +12190,7 @@ static GLboolean _glewInit_GL_ARB_parallel_shader_compile (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_point_parameters -static GLboolean _glewInit_GL_ARB_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_point_parameters () { GLboolean r = GL_FALSE; @@ -5256,9 +12202,22 @@ static GLboolean _glewInit_GL_ARB_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_ARB_point_parameters */ +#ifdef GL_ARB_polygon_offset_clamp + +static GLboolean _glewInit_GL_ARB_polygon_offset_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClamp")) == NULL) || r; + + return r; +} + +#endif /* GL_ARB_polygon_offset_clamp */ + #ifdef GL_ARB_program_interface_query -static GLboolean _glewInit_GL_ARB_program_interface_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_program_interface_query () { GLboolean r = GL_FALSE; @@ -5276,7 +12235,7 @@ static GLboolean _glewInit_GL_ARB_program_interface_query (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_provoking_vertex -static GLboolean _glewInit_GL_ARB_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_provoking_vertex () { GLboolean r = GL_FALSE; @@ -5289,7 +12248,7 @@ static GLboolean _glewInit_GL_ARB_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_robustness -static GLboolean _glewInit_GL_ARB_robustness (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_robustness () { GLboolean r = GL_FALSE; @@ -5321,7 +12280,7 @@ static GLboolean _glewInit_GL_ARB_robustness (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sample_locations -static GLboolean _glewInit_GL_ARB_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sample_locations () { GLboolean r = GL_FALSE; @@ -5335,7 +12294,7 @@ static GLboolean _glewInit_GL_ARB_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sample_shading -static GLboolean _glewInit_GL_ARB_sample_shading (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sample_shading () { GLboolean r = GL_FALSE; @@ -5348,7 +12307,7 @@ static GLboolean _glewInit_GL_ARB_sample_shading (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sampler_objects -static GLboolean _glewInit_GL_ARB_sampler_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sampler_objects () { GLboolean r = GL_FALSE; @@ -5374,7 +12333,7 @@ static GLboolean _glewInit_GL_ARB_sampler_objects (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_separate_shader_objects -static GLboolean _glewInit_GL_ARB_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_separate_shader_objects () { GLboolean r = GL_FALSE; @@ -5446,7 +12405,7 @@ static GLboolean _glewInit_GL_ARB_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_shader_atomic_counters -static GLboolean _glewInit_GL_ARB_shader_atomic_counters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_atomic_counters () { GLboolean r = GL_FALSE; @@ -5459,7 +12418,7 @@ static GLboolean _glewInit_GL_ARB_shader_atomic_counters (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_ARB_shader_image_load_store -static GLboolean _glewInit_GL_ARB_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_image_load_store () { GLboolean r = GL_FALSE; @@ -5473,7 +12432,7 @@ static GLboolean _glewInit_GL_ARB_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_shader_objects -static GLboolean _glewInit_GL_ARB_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_objects () { GLboolean r = GL_FALSE; @@ -5524,7 +12483,7 @@ static GLboolean _glewInit_GL_ARB_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_shader_storage_buffer_object -static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object () { GLboolean r = GL_FALSE; @@ -5537,7 +12496,7 @@ static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (GLEW_CONTEXT_ARG #ifdef GL_ARB_shader_subroutine -static GLboolean _glewInit_GL_ARB_shader_subroutine (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_subroutine () { GLboolean r = GL_FALSE; @@ -5557,7 +12516,7 @@ static GLboolean _glewInit_GL_ARB_shader_subroutine (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_shading_language_include -static GLboolean _glewInit_GL_ARB_shading_language_include (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shading_language_include () { GLboolean r = GL_FALSE; @@ -5575,7 +12534,7 @@ static GLboolean _glewInit_GL_ARB_shading_language_include (GLEW_CONTEXT_ARG_DEF #ifdef GL_ARB_sparse_buffer -static GLboolean _glewInit_GL_ARB_sparse_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sparse_buffer () { GLboolean r = GL_FALSE; @@ -5588,12 +12547,11 @@ static GLboolean _glewInit_GL_ARB_sparse_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sparse_texture -static GLboolean _glewInit_GL_ARB_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sparse_texture () { GLboolean r = GL_FALSE; r = ((glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentARB")) == NULL) || r; - r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r; return r; } @@ -5602,7 +12560,7 @@ static GLboolean _glewInit_GL_ARB_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sync -static GLboolean _glewInit_GL_ARB_sync (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sync () { GLboolean r = GL_FALSE; @@ -5621,7 +12579,7 @@ static GLboolean _glewInit_GL_ARB_sync (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_tessellation_shader -static GLboolean _glewInit_GL_ARB_tessellation_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_tessellation_shader () { GLboolean r = GL_FALSE; @@ -5635,7 +12593,7 @@ static GLboolean _glewInit_GL_ARB_tessellation_shader (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_barrier -static GLboolean _glewInit_GL_ARB_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_barrier () { GLboolean r = GL_FALSE; @@ -5648,7 +12606,7 @@ static GLboolean _glewInit_GL_ARB_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_texture_buffer_object -static GLboolean _glewInit_GL_ARB_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_buffer_object () { GLboolean r = GL_FALSE; @@ -5661,7 +12619,7 @@ static GLboolean _glewInit_GL_ARB_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_texture_buffer_range -static GLboolean _glewInit_GL_ARB_texture_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_buffer_range () { GLboolean r = GL_FALSE; @@ -5675,7 +12633,7 @@ static GLboolean _glewInit_GL_ARB_texture_buffer_range (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_texture_compression -static GLboolean _glewInit_GL_ARB_texture_compression (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_compression () { GLboolean r = GL_FALSE; @@ -5694,7 +12652,7 @@ static GLboolean _glewInit_GL_ARB_texture_compression (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_multisample -static GLboolean _glewInit_GL_ARB_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_multisample () { GLboolean r = GL_FALSE; @@ -5710,16 +12668,13 @@ static GLboolean _glewInit_GL_ARB_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_storage -static GLboolean _glewInit_GL_ARB_texture_storage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_storage () { GLboolean r = GL_FALSE; r = ((glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1D")) == NULL) || r; r = ((glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2D")) == NULL) || r; r = ((glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3D")) == NULL) || r; - r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r; - r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r; - r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r; return r; } @@ -5728,7 +12683,7 @@ static GLboolean _glewInit_GL_ARB_texture_storage (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_texture_storage_multisample -static GLboolean _glewInit_GL_ARB_texture_storage_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_storage_multisample () { GLboolean r = GL_FALSE; @@ -5744,7 +12699,7 @@ static GLboolean _glewInit_GL_ARB_texture_storage_multisample (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_texture_view -static GLboolean _glewInit_GL_ARB_texture_view (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_view () { GLboolean r = GL_FALSE; @@ -5757,7 +12712,7 @@ static GLboolean _glewInit_GL_ARB_texture_view (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_timer_query -static GLboolean _glewInit_GL_ARB_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_timer_query () { GLboolean r = GL_FALSE; @@ -5772,7 +12727,7 @@ static GLboolean _glewInit_GL_ARB_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_transform_feedback2 -static GLboolean _glewInit_GL_ARB_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback2 () { GLboolean r = GL_FALSE; @@ -5791,7 +12746,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_transform_feedback3 -static GLboolean _glewInit_GL_ARB_transform_feedback3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback3 () { GLboolean r = GL_FALSE; @@ -5807,7 +12762,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback3 (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_transform_feedback_instanced -static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback_instanced () { GLboolean r = GL_FALSE; @@ -5821,7 +12776,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (GLEW_CONTEXT_ARG #ifdef GL_ARB_transpose_matrix -static GLboolean _glewInit_GL_ARB_transpose_matrix (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transpose_matrix () { GLboolean r = GL_FALSE; @@ -5837,7 +12792,7 @@ static GLboolean _glewInit_GL_ARB_transpose_matrix (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_uniform_buffer_object -static GLboolean _glewInit_GL_ARB_uniform_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_uniform_buffer_object () { GLboolean r = GL_FALSE; @@ -5859,7 +12814,7 @@ static GLboolean _glewInit_GL_ARB_uniform_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_vertex_array_object -static GLboolean _glewInit_GL_ARB_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_array_object () { GLboolean r = GL_FALSE; @@ -5875,7 +12830,7 @@ static GLboolean _glewInit_GL_ARB_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_vertex_attrib_64bit -static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit () { GLboolean r = GL_FALSE; @@ -5897,7 +12852,7 @@ static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_vertex_attrib_binding -static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_attrib_binding () { GLboolean r = GL_FALSE; @@ -5921,7 +12876,7 @@ static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_vertex_blend -static GLboolean _glewInit_GL_ARB_vertex_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_blend () { GLboolean r = GL_FALSE; @@ -5943,7 +12898,7 @@ static GLboolean _glewInit_GL_ARB_vertex_blend (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_buffer_object -static GLboolean _glewInit_GL_ARB_vertex_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_buffer_object () { GLboolean r = GL_FALSE; @@ -5966,7 +12921,7 @@ static GLboolean _glewInit_GL_ARB_vertex_buffer_object (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_vertex_program -static GLboolean _glewInit_GL_ARB_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_program () { GLboolean r = GL_FALSE; @@ -6040,7 +12995,7 @@ static GLboolean _glewInit_GL_ARB_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_shader -static GLboolean _glewInit_GL_ARB_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_shader () { GLboolean r = GL_FALSE; @@ -6055,7 +13010,7 @@ static GLboolean _glewInit_GL_ARB_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_type_2_10_10_10_rev -static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev () { GLboolean r = GL_FALSE; @@ -6105,7 +13060,7 @@ static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (GLEW_CONTEXT_ARG_D #ifdef GL_ARB_viewport_array -static GLboolean _glewInit_GL_ARB_viewport_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_viewport_array () { GLboolean r = GL_FALSE; @@ -6127,7 +13082,7 @@ static GLboolean _glewInit_GL_ARB_viewport_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_window_pos -static GLboolean _glewInit_GL_ARB_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_window_pos () { GLboolean r = GL_FALSE; @@ -6155,7 +13110,7 @@ static GLboolean _glewInit_GL_ARB_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_draw_buffers -static GLboolean _glewInit_GL_ATI_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_draw_buffers () { GLboolean r = GL_FALSE; @@ -6168,7 +13123,7 @@ static GLboolean _glewInit_GL_ATI_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_element_array -static GLboolean _glewInit_GL_ATI_element_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_element_array () { GLboolean r = GL_FALSE; @@ -6183,7 +13138,7 @@ static GLboolean _glewInit_GL_ATI_element_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_envmap_bumpmap -static GLboolean _glewInit_GL_ATI_envmap_bumpmap (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_envmap_bumpmap () { GLboolean r = GL_FALSE; @@ -6199,7 +13154,7 @@ static GLboolean _glewInit_GL_ATI_envmap_bumpmap (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_fragment_shader -static GLboolean _glewInit_GL_ATI_fragment_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_fragment_shader () { GLboolean r = GL_FALSE; @@ -6225,7 +13180,7 @@ static GLboolean _glewInit_GL_ATI_fragment_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_map_object_buffer -static GLboolean _glewInit_GL_ATI_map_object_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_map_object_buffer () { GLboolean r = GL_FALSE; @@ -6239,7 +13194,7 @@ static GLboolean _glewInit_GL_ATI_map_object_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_pn_triangles -static GLboolean _glewInit_GL_ATI_pn_triangles (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_pn_triangles () { GLboolean r = GL_FALSE; @@ -6253,7 +13208,7 @@ static GLboolean _glewInit_GL_ATI_pn_triangles (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_separate_stencil -static GLboolean _glewInit_GL_ATI_separate_stencil (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_separate_stencil () { GLboolean r = GL_FALSE; @@ -6267,7 +13222,7 @@ static GLboolean _glewInit_GL_ATI_separate_stencil (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_vertex_array_object -static GLboolean _glewInit_GL_ATI_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_array_object () { GLboolean r = GL_FALSE; @@ -6291,7 +13246,7 @@ static GLboolean _glewInit_GL_ATI_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ATI_vertex_attrib_array_object -static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object () { GLboolean r = GL_FALSE; @@ -6306,7 +13261,7 @@ static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (GLEW_CONTEXT_ARG_D #ifdef GL_ATI_vertex_streams -static GLboolean _glewInit_GL_ATI_vertex_streams (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_streams () { GLboolean r = GL_FALSE; @@ -6361,9 +13316,38 @@ static GLboolean _glewInit_GL_ATI_vertex_streams (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_ATI_vertex_streams */ +#ifdef GL_EXT_EGL_image_storage + +static GLboolean _glewInit_GL_EXT_EGL_image_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glEGLImageTargetTexStorageEXT = (PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexStorageEXT")) == NULL) || r; + r = ((glEGLImageTargetTextureStorageEXT = (PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTextureStorageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_EGL_image_storage */ + +#ifdef GL_EXT_base_instance + +static GLboolean _glewInit_GL_EXT_base_instance () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstanceEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstanceEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstanceEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_base_instance */ + #ifdef GL_EXT_bindable_uniform -static GLboolean _glewInit_GL_EXT_bindable_uniform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_bindable_uniform () { GLboolean r = GL_FALSE; @@ -6378,7 +13362,7 @@ static GLboolean _glewInit_GL_EXT_bindable_uniform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_blend_color -static GLboolean _glewInit_GL_EXT_blend_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_color () { GLboolean r = GL_FALSE; @@ -6391,7 +13375,7 @@ static GLboolean _glewInit_GL_EXT_blend_color (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_blend_equation_separate -static GLboolean _glewInit_GL_EXT_blend_equation_separate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_equation_separate () { GLboolean r = GL_FALSE; @@ -6402,9 +13386,24 @@ static GLboolean _glewInit_GL_EXT_blend_equation_separate (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_blend_equation_separate */ +#ifdef GL_EXT_blend_func_extended + +static GLboolean _glewInit_GL_EXT_blend_func_extended () +{ + GLboolean r = GL_FALSE; + + r = ((glBindFragDataLocationIndexedEXT = (PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexedEXT")) == NULL) || r; + r = ((glGetFragDataIndexEXT = (PFNGLGETFRAGDATAINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndexEXT")) == NULL) || r; + r = ((glGetProgramResourceLocationIndexEXT = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndexEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_blend_func_extended */ + #ifdef GL_EXT_blend_func_separate -static GLboolean _glewInit_GL_EXT_blend_func_separate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_func_separate () { GLboolean r = GL_FALSE; @@ -6417,7 +13416,7 @@ static GLboolean _glewInit_GL_EXT_blend_func_separate (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_EXT_blend_minmax -static GLboolean _glewInit_GL_EXT_blend_minmax (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_minmax () { GLboolean r = GL_FALSE; @@ -6428,9 +13427,50 @@ static GLboolean _glewInit_GL_EXT_blend_minmax (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_blend_minmax */ +#ifdef GL_EXT_buffer_storage + +static GLboolean _glewInit_GL_EXT_buffer_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageEXT = (PFNGLBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageEXT")) == NULL) || r; + r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_buffer_storage */ + +#ifdef GL_EXT_clear_texture + +static GLboolean _glewInit_GL_EXT_clear_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glClearTexImageEXT = (PFNGLCLEARTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexImageEXT")) == NULL) || r; + r = ((glClearTexSubImageEXT = (PFNGLCLEARTEXSUBIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_clear_texture */ + +#ifdef GL_EXT_clip_control + +static GLboolean _glewInit_GL_EXT_clip_control () +{ + GLboolean r = GL_FALSE; + + r = ((glClipControlEXT = (PFNGLCLIPCONTROLEXTPROC)glewGetProcAddress((const GLubyte*)"glClipControlEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_clip_control */ + #ifdef GL_EXT_color_subtable -static GLboolean _glewInit_GL_EXT_color_subtable (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_color_subtable () { GLboolean r = GL_FALSE; @@ -6444,7 +13484,7 @@ static GLboolean _glewInit_GL_EXT_color_subtable (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_compiled_vertex_array -static GLboolean _glewInit_GL_EXT_compiled_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_compiled_vertex_array () { GLboolean r = GL_FALSE; @@ -6458,7 +13498,7 @@ static GLboolean _glewInit_GL_EXT_compiled_vertex_array (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_EXT_convolution -static GLboolean _glewInit_GL_EXT_convolution (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_convolution () { GLboolean r = GL_FALSE; @@ -6483,7 +13523,7 @@ static GLboolean _glewInit_GL_EXT_convolution (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_coordinate_frame -static GLboolean _glewInit_GL_EXT_coordinate_frame (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_coordinate_frame () { GLboolean r = GL_FALSE; @@ -6495,9 +13535,22 @@ static GLboolean _glewInit_GL_EXT_coordinate_frame (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_coordinate_frame */ +#ifdef GL_EXT_copy_image + +static GLboolean _glewInit_GL_EXT_copy_image () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyImageSubDataEXT = (PFNGLCOPYIMAGESUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_copy_image */ + #ifdef GL_EXT_copy_texture -static GLboolean _glewInit_GL_EXT_copy_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_copy_texture () { GLboolean r = GL_FALSE; @@ -6514,7 +13567,7 @@ static GLboolean _glewInit_GL_EXT_copy_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_cull_vertex -static GLboolean _glewInit_GL_EXT_cull_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_cull_vertex () { GLboolean r = GL_FALSE; @@ -6528,7 +13581,7 @@ static GLboolean _glewInit_GL_EXT_cull_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_debug_label -static GLboolean _glewInit_GL_EXT_debug_label (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_debug_label () { GLboolean r = GL_FALSE; @@ -6542,7 +13595,7 @@ static GLboolean _glewInit_GL_EXT_debug_label (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_debug_marker -static GLboolean _glewInit_GL_EXT_debug_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_debug_marker () { GLboolean r = GL_FALSE; @@ -6557,7 +13610,7 @@ static GLboolean _glewInit_GL_EXT_debug_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_depth_bounds_test -static GLboolean _glewInit_GL_EXT_depth_bounds_test (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_depth_bounds_test () { GLboolean r = GL_FALSE; @@ -6570,7 +13623,7 @@ static GLboolean _glewInit_GL_EXT_depth_bounds_test (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_direct_state_access -static GLboolean _glewInit_GL_EXT_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_direct_state_access () { GLboolean r = GL_FALSE; @@ -6794,9 +13847,57 @@ static GLboolean _glewInit_GL_EXT_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT #endif /* GL_EXT_direct_state_access */ +#ifdef GL_EXT_discard_framebuffer + +static GLboolean _glewInit_GL_EXT_discard_framebuffer () +{ + GLboolean r = GL_FALSE; + + r = ((glDiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glDiscardFramebufferEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_discard_framebuffer */ + +#ifdef GL_EXT_disjoint_timer_query + +static GLboolean _glewInit_GL_EXT_disjoint_timer_query () +{ + GLboolean r = GL_FALSE; + + r = ((glBeginQueryEXT = (PFNGLBEGINQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryEXT")) == NULL) || r; + r = ((glDeleteQueriesEXT = (PFNGLDELETEQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesEXT")) == NULL) || r; + r = ((glEndQueryEXT = (PFNGLENDQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glEndQueryEXT")) == NULL) || r; + r = ((glGenQueriesEXT = (PFNGLGENQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesEXT")) == NULL) || r; + r = ((glGetInteger64vEXT = (PFNGLGETINTEGER64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vEXT")) == NULL) || r; + r = ((glGetQueryObjectivEXT = (PFNGLGETQUERYOBJECTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivEXT")) == NULL) || r; + r = ((glGetQueryObjectuivEXT = (PFNGLGETQUERYOBJECTUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivEXT")) == NULL) || r; + r = ((glGetQueryivEXT = (PFNGLGETQUERYIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivEXT")) == NULL) || r; + r = ((glIsQueryEXT = (PFNGLISQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glIsQueryEXT")) == NULL) || r; + r = ((glQueryCounterEXT = (PFNGLQUERYCOUNTEREXTPROC)glewGetProcAddress((const GLubyte*)"glQueryCounterEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_disjoint_timer_query */ + +#ifdef GL_EXT_draw_buffers + +static GLboolean _glewInit_GL_EXT_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_buffers */ + #ifdef GL_EXT_draw_buffers2 -static GLboolean _glewInit_GL_EXT_draw_buffers2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_buffers2 () { GLboolean r = GL_FALSE; @@ -6812,9 +13913,45 @@ static GLboolean _glewInit_GL_EXT_draw_buffers2 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_draw_buffers2 */ +#ifdef GL_EXT_draw_buffers_indexed + +static GLboolean _glewInit_GL_EXT_draw_buffers_indexed () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateiEXT = (PFNGLBLENDEQUATIONSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiEXT")) == NULL) || r; + r = ((glBlendEquationiEXT = (PFNGLBLENDEQUATIONIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiEXT")) == NULL) || r; + r = ((glBlendFuncSeparateiEXT = (PFNGLBLENDFUNCSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiEXT")) == NULL) || r; + r = ((glBlendFunciEXT = (PFNGLBLENDFUNCIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciEXT")) == NULL) || r; + r = ((glColorMaskiEXT = (PFNGLCOLORMASKIEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiEXT")) == NULL) || r; + r = ((glDisableiEXT = (PFNGLDISABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableiEXT")) == NULL) || r; + r = ((glEnableiEXT = (PFNGLENABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableiEXT")) == NULL) || r; + r = ((glIsEnablediEXT = (PFNGLISENABLEDIEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_buffers_indexed */ + +#ifdef GL_EXT_draw_elements_base_vertex + +static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawElementsBaseVertexEXT = (PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertexEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseVertexEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexEXT")) == NULL) || r; + r = ((glDrawRangeElementsBaseVertexEXT = (PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertexEXT")) == NULL) || r; + r = ((glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertexEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_elements_base_vertex */ + #ifdef GL_EXT_draw_instanced -static GLboolean _glewInit_GL_EXT_draw_instanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_instanced () { GLboolean r = GL_FALSE; @@ -6828,7 +13965,7 @@ static GLboolean _glewInit_GL_EXT_draw_instanced (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_draw_range_elements -static GLboolean _glewInit_GL_EXT_draw_range_elements (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_range_elements () { GLboolean r = GL_FALSE; @@ -6839,9 +13976,37 @@ static GLboolean _glewInit_GL_EXT_draw_range_elements (GLEW_CONTEXT_ARG_DEF_INIT #endif /* GL_EXT_draw_range_elements */ +#ifdef GL_EXT_draw_transform_feedback + +static GLboolean _glewInit_GL_EXT_draw_transform_feedback () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawTransformFeedbackEXT = (PFNGLDRAWTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackEXT")) == NULL) || r; + r = ((glDrawTransformFeedbackInstancedEXT = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackInstancedEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_transform_feedback */ + +#ifdef GL_EXT_external_buffer + +static GLboolean _glewInit_GL_EXT_external_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageExternalEXT = (PFNGLBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageExternalEXT")) == NULL) || r; + r = ((glNamedBufferStorageExternalEXT = (PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageExternalEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_external_buffer */ + #ifdef GL_EXT_fog_coord -static GLboolean _glewInit_GL_EXT_fog_coord (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_fog_coord () { GLboolean r = GL_FALSE; @@ -6858,7 +14023,7 @@ static GLboolean _glewInit_GL_EXT_fog_coord (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_fragment_lighting -static GLboolean _glewInit_GL_EXT_fragment_lighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_fragment_lighting () { GLboolean r = GL_FALSE; @@ -6888,7 +14053,7 @@ static GLboolean _glewInit_GL_EXT_fragment_lighting (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_framebuffer_blit -static GLboolean _glewInit_GL_EXT_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_blit () { GLboolean r = GL_FALSE; @@ -6901,7 +14066,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_framebuffer_multisample -static GLboolean _glewInit_GL_EXT_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_multisample () { GLboolean r = GL_FALSE; @@ -6914,7 +14079,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_EXT_framebuffer_object -static GLboolean _glewInit_GL_EXT_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_object () { GLboolean r = GL_FALSE; @@ -6943,7 +14108,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_geometry_shader4 -static GLboolean _glewInit_GL_EXT_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_geometry_shader4 () { GLboolean r = GL_FALSE; @@ -6958,7 +14123,7 @@ static GLboolean _glewInit_GL_EXT_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_gpu_program_parameters -static GLboolean _glewInit_GL_EXT_gpu_program_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_gpu_program_parameters () { GLboolean r = GL_FALSE; @@ -6972,7 +14137,7 @@ static GLboolean _glewInit_GL_EXT_gpu_program_parameters (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_EXT_gpu_shader4 -static GLboolean _glewInit_GL_EXT_gpu_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_gpu_shader4 () { GLboolean r = GL_FALSE; @@ -7018,7 +14183,7 @@ static GLboolean _glewInit_GL_EXT_gpu_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_histogram -static GLboolean _glewInit_GL_EXT_histogram (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_histogram () { GLboolean r = GL_FALSE; @@ -7040,7 +14205,7 @@ static GLboolean _glewInit_GL_EXT_histogram (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_index_func -static GLboolean _glewInit_GL_EXT_index_func (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_index_func () { GLboolean r = GL_FALSE; @@ -7053,7 +14218,7 @@ static GLboolean _glewInit_GL_EXT_index_func (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_index_material -static GLboolean _glewInit_GL_EXT_index_material (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_index_material () { GLboolean r = GL_FALSE; @@ -7064,9 +14229,22 @@ static GLboolean _glewInit_GL_EXT_index_material (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_index_material */ +#ifdef GL_EXT_instanced_arrays + +static GLboolean _glewInit_GL_EXT_instanced_arrays () +{ + GLboolean r = GL_FALSE; + + r = ((glVertexAttribDivisorEXT = (PFNGLVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_instanced_arrays */ + #ifdef GL_EXT_light_texture -static GLboolean _glewInit_GL_EXT_light_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_light_texture () { GLboolean r = GL_FALSE; @@ -7079,9 +14257,81 @@ static GLboolean _glewInit_GL_EXT_light_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_light_texture */ +#ifdef GL_EXT_map_buffer_range + +static GLboolean _glewInit_GL_EXT_map_buffer_range () +{ + GLboolean r = GL_FALSE; + + r = ((glFlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeEXT")) == NULL) || r; + r = ((glMapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRangeEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_map_buffer_range */ + +#ifdef GL_EXT_memory_object + +static GLboolean _glewInit_GL_EXT_memory_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageMemEXT = (PFNGLBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageMemEXT")) == NULL) || r; + r = ((glCreateMemoryObjectsEXT = (PFNGLCREATEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateMemoryObjectsEXT")) == NULL) || r; + r = ((glDeleteMemoryObjectsEXT = (PFNGLDELETEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteMemoryObjectsEXT")) == NULL) || r; + r = ((glGetMemoryObjectParameterivEXT = (PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectParameterivEXT")) == NULL) || r; + r = ((glGetUnsignedBytei_vEXT = (PFNGLGETUNSIGNEDBYTEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytei_vEXT")) == NULL) || r; + r = ((glGetUnsignedBytevEXT = (PFNGLGETUNSIGNEDBYTEVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytevEXT")) == NULL) || r; + r = ((glIsMemoryObjectEXT = (PFNGLISMEMORYOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glIsMemoryObjectEXT")) == NULL) || r; + r = ((glMemoryObjectParameterivEXT = (PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryObjectParameterivEXT")) == NULL) || r; + r = ((glNamedBufferStorageMemEXT = (PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageMemEXT")) == NULL) || r; + r = ((glTexStorageMem1DEXT = (PFNGLTEXSTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem1DEXT")) == NULL) || r; + r = ((glTexStorageMem2DEXT = (PFNGLTEXSTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DEXT")) == NULL) || r; + r = ((glTexStorageMem2DMultisampleEXT = (PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DMultisampleEXT")) == NULL) || r; + r = ((glTexStorageMem3DEXT = (PFNGLTEXSTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DEXT")) == NULL) || r; + r = ((glTexStorageMem3DMultisampleEXT = (PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DMultisampleEXT")) == NULL) || r; + r = ((glTextureStorageMem1DEXT = (PFNGLTEXTURESTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem1DEXT")) == NULL) || r; + r = ((glTextureStorageMem2DEXT = (PFNGLTEXTURESTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DEXT")) == NULL) || r; + r = ((glTextureStorageMem2DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DMultisampleEXT")) == NULL) || r; + r = ((glTextureStorageMem3DEXT = (PFNGLTEXTURESTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DEXT")) == NULL) || r; + r = ((glTextureStorageMem3DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DMultisampleEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object */ + +#ifdef GL_EXT_memory_object_fd + +static GLboolean _glewInit_GL_EXT_memory_object_fd () +{ + GLboolean r = GL_FALSE; + + r = ((glImportMemoryFdEXT = (PFNGLIMPORTMEMORYFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryFdEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object_fd */ + +#ifdef GL_EXT_memory_object_win32 + +static GLboolean _glewInit_GL_EXT_memory_object_win32 () +{ + GLboolean r = GL_FALSE; + + r = ((glImportMemoryWin32HandleEXT = (PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32HandleEXT")) == NULL) || r; + r = ((glImportMemoryWin32NameEXT = (PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32NameEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object_win32 */ + #ifdef GL_EXT_multi_draw_arrays -static GLboolean _glewInit_GL_EXT_multi_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_multi_draw_arrays () { GLboolean r = GL_FALSE; @@ -7093,9 +14343,23 @@ static GLboolean _glewInit_GL_EXT_multi_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_multi_draw_arrays */ +#ifdef GL_EXT_multi_draw_indirect + +static GLboolean _glewInit_GL_EXT_multi_draw_indirect () +{ + GLboolean r = GL_FALSE; + + r = ((glMultiDrawArraysIndirectEXT = (PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectEXT")) == NULL) || r; + r = ((glMultiDrawElementsIndirectEXT = (PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multi_draw_indirect */ + #ifdef GL_EXT_multisample -static GLboolean _glewInit_GL_EXT_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_multisample () { GLboolean r = GL_FALSE; @@ -7107,9 +14371,37 @@ static GLboolean _glewInit_GL_EXT_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_multisample */ +#ifdef GL_EXT_multisampled_render_to_texture + +static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multisampled_render_to_texture */ + +#ifdef GL_EXT_multiview_draw_buffers + +static GLboolean _glewInit_GL_EXT_multiview_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersIndexedEXT")) == NULL) || r; + r = ((glGetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_vEXT")) == NULL) || r; + r = ((glReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glReadBufferIndexedEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multiview_draw_buffers */ + #ifdef GL_EXT_paletted_texture -static GLboolean _glewInit_GL_EXT_paletted_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_paletted_texture () { GLboolean r = GL_FALSE; @@ -7125,7 +14417,7 @@ static GLboolean _glewInit_GL_EXT_paletted_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_pixel_transform -static GLboolean _glewInit_GL_EXT_pixel_transform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_pixel_transform () { GLboolean r = GL_FALSE; @@ -7143,7 +14435,7 @@ static GLboolean _glewInit_GL_EXT_pixel_transform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_point_parameters -static GLboolean _glewInit_GL_EXT_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_point_parameters () { GLboolean r = GL_FALSE; @@ -7157,7 +14449,7 @@ static GLboolean _glewInit_GL_EXT_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_polygon_offset -static GLboolean _glewInit_GL_EXT_polygon_offset (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_polygon_offset () { GLboolean r = GL_FALSE; @@ -7170,7 +14462,7 @@ static GLboolean _glewInit_GL_EXT_polygon_offset (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_polygon_offset_clamp -static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_polygon_offset_clamp () { GLboolean r = GL_FALSE; @@ -7181,9 +14473,22 @@ static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (GLEW_CONTEXT_ARG_DEF_INI #endif /* GL_EXT_polygon_offset_clamp */ +#ifdef GL_EXT_primitive_bounding_box + +static GLboolean _glewInit_GL_EXT_primitive_bounding_box () +{ + GLboolean r = GL_FALSE; + + r = ((glPrimitiveBoundingBoxEXT = (PFNGLPRIMITIVEBOUNDINGBOXEXTPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveBoundingBoxEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_primitive_bounding_box */ + #ifdef GL_EXT_provoking_vertex -static GLboolean _glewInit_GL_EXT_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_provoking_vertex () { GLboolean r = GL_FALSE; @@ -7196,7 +14501,7 @@ static GLboolean _glewInit_GL_EXT_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_raster_multisample -static GLboolean _glewInit_GL_EXT_raster_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_raster_multisample () { GLboolean r = GL_FALSE; @@ -7210,9 +14515,24 @@ static GLboolean _glewInit_GL_EXT_raster_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_raster_multisample */ +#ifdef GL_EXT_robustness + +static GLboolean _glewInit_GL_EXT_robustness () +{ + GLboolean r = GL_FALSE; + + r = ((glGetnUniformfvEXT = (PFNGLGETNUNIFORMFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfvEXT")) == NULL) || r; + r = ((glGetnUniformivEXT = (PFNGLGETNUNIFORMIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformivEXT")) == NULL) || r; + r = ((glReadnPixelsEXT = (PFNGLREADNPIXELSEXTPROC)glewGetProcAddress((const GLubyte*)"glReadnPixelsEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_robustness */ + #ifdef GL_EXT_scene_marker -static GLboolean _glewInit_GL_EXT_scene_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_scene_marker () { GLboolean r = GL_FALSE; @@ -7226,7 +14546,7 @@ static GLboolean _glewInit_GL_EXT_scene_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_secondary_color -static GLboolean _glewInit_GL_EXT_secondary_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_secondary_color () { GLboolean r = GL_FALSE; @@ -7253,9 +14573,55 @@ static GLboolean _glewInit_GL_EXT_secondary_color (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_secondary_color */ +#ifdef GL_EXT_semaphore + +static GLboolean _glewInit_GL_EXT_semaphore () +{ + GLboolean r = GL_FALSE; + + r = ((glDeleteSemaphoresEXT = (PFNGLDELETESEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteSemaphoresEXT")) == NULL) || r; + r = ((glGenSemaphoresEXT = (PFNGLGENSEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSemaphoresEXT")) == NULL) || r; + r = ((glGetSemaphoreParameterui64vEXT = (PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSemaphoreParameterui64vEXT")) == NULL) || r; + r = ((glIsSemaphoreEXT = (PFNGLISSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsSemaphoreEXT")) == NULL) || r; + r = ((glSemaphoreParameterui64vEXT = (PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glSemaphoreParameterui64vEXT")) == NULL) || r; + r = ((glSignalSemaphoreEXT = (PFNGLSIGNALSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreEXT")) == NULL) || r; + r = ((glWaitSemaphoreEXT = (PFNGLWAITSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore */ + +#ifdef GL_EXT_semaphore_fd + +static GLboolean _glewInit_GL_EXT_semaphore_fd () +{ + GLboolean r = GL_FALSE; + + r = ((glImportSemaphoreFdEXT = (PFNGLIMPORTSEMAPHOREFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreFdEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore_fd */ + +#ifdef GL_EXT_semaphore_win32 + +static GLboolean _glewInit_GL_EXT_semaphore_win32 () +{ + GLboolean r = GL_FALSE; + + r = ((glImportSemaphoreWin32HandleEXT = (PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32HandleEXT")) == NULL) || r; + r = ((glImportSemaphoreWin32NameEXT = (PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32NameEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore_win32 */ + #ifdef GL_EXT_separate_shader_objects -static GLboolean _glewInit_GL_EXT_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_separate_shader_objects () { GLboolean r = GL_FALSE; @@ -7268,9 +14634,22 @@ static GLboolean _glewInit_GL_EXT_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_separate_shader_objects */ +#ifdef GL_EXT_shader_framebuffer_fetch + +static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFetchBarrierEXT = (PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_shader_framebuffer_fetch */ + #ifdef GL_EXT_shader_image_load_store -static GLboolean _glewInit_GL_EXT_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_shader_image_load_store () { GLboolean r = GL_FALSE; @@ -7282,9 +14661,38 @@ static GLboolean _glewInit_GL_EXT_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_shader_image_load_store */ +#ifdef GL_EXT_shader_pixel_local_storage2 + +static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 () +{ + GLboolean r = GL_FALSE; + + r = ((glClearPixelLocalStorageuiEXT = (PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearPixelLocalStorageuiEXT")) == NULL) || r; + r = ((glFramebufferPixelLocalStorageSizeEXT = (PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; + r = ((glGetFramebufferPixelLocalStorageSizeEXT = (PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +#ifdef GL_EXT_sparse_texture + +static GLboolean _glewInit_GL_EXT_sparse_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glTexPageCommitmentEXT = (PFNGLTEXPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentEXT")) == NULL) || r; + r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_sparse_texture */ + #ifdef GL_EXT_stencil_two_side -static GLboolean _glewInit_GL_EXT_stencil_two_side (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_stencil_two_side () { GLboolean r = GL_FALSE; @@ -7297,7 +14705,7 @@ static GLboolean _glewInit_GL_EXT_stencil_two_side (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_subtexture -static GLboolean _glewInit_GL_EXT_subtexture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_subtexture () { GLboolean r = GL_FALSE; @@ -7310,9 +14718,22 @@ static GLboolean _glewInit_GL_EXT_subtexture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_subtexture */ +#ifdef GL_EXT_tessellation_point_size + +static GLboolean _glewInit_GL_EXT_tessellation_point_size () +{ + GLboolean r = GL_FALSE; + + r = ((glPatchParameteriEXT = (PFNGLPATCHPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glPatchParameteriEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_tessellation_point_size */ + #ifdef GL_EXT_texture3D -static GLboolean _glewInit_GL_EXT_texture3D (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture3D () { GLboolean r = GL_FALSE; @@ -7325,7 +14746,7 @@ static GLboolean _glewInit_GL_EXT_texture3D (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_array -static GLboolean _glewInit_GL_EXT_texture_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_array () { GLboolean r = GL_FALSE; @@ -7336,9 +14757,25 @@ static GLboolean _glewInit_GL_EXT_texture_array (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_texture_array */ +#ifdef GL_EXT_texture_border_clamp + +static GLboolean _glewInit_GL_EXT_texture_border_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glGetSamplerParameterIivEXT = (PFNGLGETSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivEXT")) == NULL) || r; + r = ((glGetSamplerParameterIuivEXT = (PFNGLGETSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivEXT")) == NULL) || r; + r = ((glSamplerParameterIivEXT = (PFNGLSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivEXT")) == NULL) || r; + r = ((glSamplerParameterIuivEXT = (PFNGLSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_border_clamp */ + #ifdef GL_EXT_texture_buffer_object -static GLboolean _glewInit_GL_EXT_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_buffer_object () { GLboolean r = GL_FALSE; @@ -7351,7 +14788,7 @@ static GLboolean _glewInit_GL_EXT_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_EXT_texture_integer -static GLboolean _glewInit_GL_EXT_texture_integer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_integer () { GLboolean r = GL_FALSE; @@ -7369,7 +14806,7 @@ static GLboolean _glewInit_GL_EXT_texture_integer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_object -static GLboolean _glewInit_GL_EXT_texture_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_object () { GLboolean r = GL_FALSE; @@ -7387,7 +14824,7 @@ static GLboolean _glewInit_GL_EXT_texture_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_perturb_normal -static GLboolean _glewInit_GL_EXT_texture_perturb_normal (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_perturb_normal () { GLboolean r = GL_FALSE; @@ -7398,9 +14835,40 @@ static GLboolean _glewInit_GL_EXT_texture_perturb_normal (GLEW_CONTEXT_ARG_DEF_I #endif /* GL_EXT_texture_perturb_normal */ +#ifdef GL_EXT_texture_storage + +static GLboolean _glewInit_GL_EXT_texture_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1DEXT")) == NULL) || r; + r = ((glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DEXT")) == NULL) || r; + r = ((glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DEXT")) == NULL) || r; + r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r; + r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r; + r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_storage */ + +#ifdef GL_EXT_texture_view + +static GLboolean _glewInit_GL_EXT_texture_view () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureViewEXT = (PFNGLTEXTUREVIEWEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureViewEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_view */ + #ifdef GL_EXT_timer_query -static GLboolean _glewInit_GL_EXT_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_timer_query () { GLboolean r = GL_FALSE; @@ -7414,7 +14882,7 @@ static GLboolean _glewInit_GL_EXT_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_transform_feedback -static GLboolean _glewInit_GL_EXT_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_transform_feedback () { GLboolean r = GL_FALSE; @@ -7433,7 +14901,7 @@ static GLboolean _glewInit_GL_EXT_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_vertex_array -static GLboolean _glewInit_GL_EXT_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_array () { GLboolean r = GL_FALSE; @@ -7451,9 +14919,24 @@ static GLboolean _glewInit_GL_EXT_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_vertex_array */ +#ifdef GL_EXT_vertex_array_setXXX + +static GLboolean _glewInit_GL_EXT_vertex_array_setXXX () +{ + GLboolean r = GL_FALSE; + + r = ((glBindArraySetEXT = (PFNGLBINDARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindArraySetEXT")) == NULL) || r; + r = ((glCreateArraySetExt = (PFNGLCREATEARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateArraySetExt")) == NULL) || r; + r = ((glDeleteArraySetsEXT = (PFNGLDELETEARRAYSETSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteArraySetsEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_vertex_array_setXXX */ + #ifdef GL_EXT_vertex_attrib_64bit -static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit () { GLboolean r = GL_FALSE; @@ -7476,7 +14959,7 @@ static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_EXT_vertex_shader -static GLboolean _glewInit_GL_EXT_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_shader () { GLboolean r = GL_FALSE; @@ -7530,7 +15013,7 @@ static GLboolean _glewInit_GL_EXT_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_vertex_weighting -static GLboolean _glewInit_GL_EXT_vertex_weighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_weighting () { GLboolean r = GL_FALSE; @@ -7543,9 +15026,36 @@ static GLboolean _glewInit_GL_EXT_vertex_weighting (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_vertex_weighting */ +#ifdef GL_EXT_win32_keyed_mutex + +static GLboolean _glewInit_GL_EXT_win32_keyed_mutex () +{ + GLboolean r = GL_FALSE; + + r = ((glAcquireKeyedMutexWin32EXT = (PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glAcquireKeyedMutexWin32EXT")) == NULL) || r; + r = ((glReleaseKeyedMutexWin32EXT = (PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glReleaseKeyedMutexWin32EXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_win32_keyed_mutex */ + +#ifdef GL_EXT_window_rectangles + +static GLboolean _glewInit_GL_EXT_window_rectangles () +{ + GLboolean r = GL_FALSE; + + r = ((glWindowRectanglesEXT = (PFNGLWINDOWRECTANGLESEXTPROC)glewGetProcAddress((const GLubyte*)"glWindowRectanglesEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_window_rectangles */ + #ifdef GL_EXT_x11_sync_object -static GLboolean _glewInit_GL_EXT_x11_sync_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_x11_sync_object () { GLboolean r = GL_FALSE; @@ -7558,7 +15068,7 @@ static GLboolean _glewInit_GL_EXT_x11_sync_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_GREMEDY_frame_terminator -static GLboolean _glewInit_GL_GREMEDY_frame_terminator (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_GREMEDY_frame_terminator () { GLboolean r = GL_FALSE; @@ -7571,7 +15081,7 @@ static GLboolean _glewInit_GL_GREMEDY_frame_terminator (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_GREMEDY_string_marker -static GLboolean _glewInit_GL_GREMEDY_string_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_GREMEDY_string_marker () { GLboolean r = GL_FALSE; @@ -7584,7 +15094,7 @@ static GLboolean _glewInit_GL_GREMEDY_string_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_HP_image_transform -static GLboolean _glewInit_GL_HP_image_transform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_HP_image_transform () { GLboolean r = GL_FALSE; @@ -7602,7 +15112,7 @@ static GLboolean _glewInit_GL_HP_image_transform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_IBM_multimode_draw_arrays -static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_IBM_multimode_draw_arrays () { GLboolean r = GL_FALSE; @@ -7616,7 +15126,7 @@ static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_IBM_vertex_array_lists -static GLboolean _glewInit_GL_IBM_vertex_array_lists (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_IBM_vertex_array_lists () { GLboolean r = GL_FALSE; @@ -7634,9 +15144,55 @@ static GLboolean _glewInit_GL_IBM_vertex_array_lists (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_IBM_vertex_array_lists */ +#ifdef GL_IMG_bindless_texture + +static GLboolean _glewInit_GL_IMG_bindless_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glGetTextureHandleIMG = (PFNGLGETTEXTUREHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleIMG")) == NULL) || r; + r = ((glGetTextureSamplerHandleIMG = (PFNGLGETTEXTURESAMPLERHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleIMG")) == NULL) || r; + r = ((glProgramUniformHandleui64IMG = (PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64IMG")) == NULL) || r; + r = ((glProgramUniformHandleui64vIMG = (PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vIMG")) == NULL) || r; + r = ((glUniformHandleui64IMG = (PFNGLUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64IMG")) == NULL) || r; + r = ((glUniformHandleui64vIMG = (PFNGLUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_bindless_texture */ + +#ifdef GL_IMG_framebuffer_downsample + +static GLboolean _glewInit_GL_IMG_framebuffer_downsample () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DDownsampleIMG")) == NULL) || r; + r = ((glFramebufferTextureLayerDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerDownsampleIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_framebuffer_downsample */ + +#ifdef GL_IMG_multisampled_render_to_texture + +static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleIMG")) == NULL) || r; + r = ((glRenderbufferStorageMultisampleIMG = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_multisampled_render_to_texture */ + #ifdef GL_INTEL_map_texture -static GLboolean _glewInit_GL_INTEL_map_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_map_texture () { GLboolean r = GL_FALSE; @@ -7651,7 +15207,7 @@ static GLboolean _glewInit_GL_INTEL_map_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_INTEL_parallel_arrays -static GLboolean _glewInit_GL_INTEL_parallel_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_parallel_arrays () { GLboolean r = GL_FALSE; @@ -7667,7 +15223,7 @@ static GLboolean _glewInit_GL_INTEL_parallel_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_INTEL_performance_query -static GLboolean _glewInit_GL_INTEL_performance_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_performance_query () { GLboolean r = GL_FALSE; @@ -7689,7 +15245,7 @@ static GLboolean _glewInit_GL_INTEL_performance_query (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_INTEL_texture_scissor -static GLboolean _glewInit_GL_INTEL_texture_scissor (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_texture_scissor () { GLboolean r = GL_FALSE; @@ -7703,7 +15259,7 @@ static GLboolean _glewInit_GL_INTEL_texture_scissor (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_KHR_blend_equation_advanced -static GLboolean _glewInit_GL_KHR_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_blend_equation_advanced () { GLboolean r = GL_FALSE; @@ -7716,7 +15272,7 @@ static GLboolean _glewInit_GL_KHR_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_KHR_debug -static GLboolean _glewInit_GL_KHR_debug (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_debug () { GLboolean r = GL_FALSE; @@ -7736,9 +15292,22 @@ static GLboolean _glewInit_GL_KHR_debug (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_KHR_debug */ +#ifdef GL_KHR_parallel_shader_compile + +static GLboolean _glewInit_GL_KHR_parallel_shader_compile () +{ + GLboolean r = GL_FALSE; + + r = ((glMaxShaderCompilerThreadsKHR = (PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsKHR")) == NULL) || r; + + return r; +} + +#endif /* GL_KHR_parallel_shader_compile */ + #ifdef GL_KHR_robustness -static GLboolean _glewInit_GL_KHR_robustness (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_robustness () { GLboolean r = GL_FALSE; @@ -7754,7 +15323,7 @@ static GLboolean _glewInit_GL_KHR_robustness (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_KTX_buffer_region -static GLboolean _glewInit_GL_KTX_buffer_region (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KTX_buffer_region () { GLboolean r = GL_FALSE; @@ -7769,9 +15338,23 @@ static GLboolean _glewInit_GL_KTX_buffer_region (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_KTX_buffer_region */ +#ifdef GL_MESA_framebuffer_flip_y + +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferParameteriMESA = (PFNGLFRAMEBUFFERPARAMETERIMESAPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteriMESA")) == NULL) || r; + r = ((glGetFramebufferParameterivMESA = (PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivMESA")) == NULL) || r; + + return r; +} + +#endif /* GL_MESA_framebuffer_flip_y */ + #ifdef GL_MESA_resize_buffers -static GLboolean _glewInit_GL_MESA_resize_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_MESA_resize_buffers () { GLboolean r = GL_FALSE; @@ -7784,7 +15367,7 @@ static GLboolean _glewInit_GL_MESA_resize_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_MESA_window_pos -static GLboolean _glewInit_GL_MESA_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_MESA_window_pos () { GLboolean r = GL_FALSE; @@ -7820,7 +15403,7 @@ static GLboolean _glewInit_GL_MESA_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NVX_conditional_render -static GLboolean _glewInit_GL_NVX_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NVX_conditional_render () { GLboolean r = GL_FALSE; @@ -7832,9 +15415,84 @@ static GLboolean _glewInit_GL_NVX_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NVX_conditional_render */ +#ifdef GL_NVX_gpu_multicast2 + +static GLboolean _glewInit_GL_NVX_gpu_multicast2 () +{ + GLboolean r = GL_FALSE; + + r = ((glAsyncCopyBufferSubDataNVX = (PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyBufferSubDataNVX")) == NULL) || r; + r = ((glAsyncCopyImageSubDataNVX = (PFNGLASYNCCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyImageSubDataNVX")) == NULL) || r; + r = ((glMulticastScissorArrayvNVX = (PFNGLMULTICASTSCISSORARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastScissorArrayvNVX")) == NULL) || r; + r = ((glMulticastViewportArrayvNVX = (PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportArrayvNVX")) == NULL) || r; + r = ((glMulticastViewportPositionWScaleNVX = (PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportPositionWScaleNVX")) == NULL) || r; + r = ((glUploadGpuMaskNVX = (PFNGLUPLOADGPUMASKNVXPROC)glewGetProcAddress((const GLubyte*)"glUploadGpuMaskNVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_gpu_multicast2 */ + +#ifdef GL_NVX_linked_gpu_multicast + +static GLboolean _glewInit_GL_NVX_linked_gpu_multicast () +{ + GLboolean r = GL_FALSE; + + r = ((glLGPUCopyImageSubDataNVX = (PFNGLLGPUCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUCopyImageSubDataNVX")) == NULL) || r; + r = ((glLGPUInterlockNVX = (PFNGLLGPUINTERLOCKNVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUInterlockNVX")) == NULL) || r; + r = ((glLGPUNamedBufferSubDataNVX = (PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUNamedBufferSubDataNVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_linked_gpu_multicast */ + +#ifdef GL_NVX_progress_fence + +static GLboolean _glewInit_GL_NVX_progress_fence () +{ + GLboolean r = GL_FALSE; + + r = ((glClientWaitSemaphoreui64NVX = (PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSemaphoreui64NVX")) == NULL) || r; + r = ((glSignalSemaphoreui64NVX = (PFNGLSIGNALSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreui64NVX")) == NULL) || r; + r = ((glWaitSemaphoreui64NVX = (PFNGLWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreui64NVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_progress_fence */ + +#ifdef GL_NV_3dvision_settings + +static GLboolean _glewInit_GL_NV_3dvision_settings () +{ + GLboolean r = GL_FALSE; + + r = ((glStereoParameterfNV = (PFNGLSTEREOPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameterfNV")) == NULL) || r; + r = ((glStereoParameteriNV = (PFNGLSTEREOPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameteriNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_3dvision_settings */ + +#ifdef GL_NV_alpha_to_coverage_dither_control + +static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control () +{ + GLboolean r = GL_FALSE; + + r = ((glAlphaToCoverageDitherControlNV = (PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)glewGetProcAddress((const GLubyte*)"glAlphaToCoverageDitherControlNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_alpha_to_coverage_dither_control */ + #ifdef GL_NV_bindless_multi_draw_indirect -static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -7848,7 +15506,7 @@ static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (GLEW_CONTEXT_ARG_ #ifdef GL_NV_bindless_multi_draw_indirect_count -static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count () { GLboolean r = GL_FALSE; @@ -7862,7 +15520,7 @@ static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (GLEW_CONTEX #ifdef GL_NV_bindless_texture -static GLboolean _glewInit_GL_NV_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_texture () { GLboolean r = GL_FALSE; @@ -7887,7 +15545,7 @@ static GLboolean _glewInit_GL_NV_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_blend_equation_advanced -static GLboolean _glewInit_GL_NV_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_blend_equation_advanced () { GLboolean r = GL_FALSE; @@ -7899,9 +15557,51 @@ static GLboolean _glewInit_GL_NV_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_I #endif /* GL_NV_blend_equation_advanced */ +#ifdef GL_NV_clip_space_w_scaling + +static GLboolean _glewInit_GL_NV_clip_space_w_scaling () +{ + GLboolean r = GL_FALSE; + + r = ((glViewportPositionWScaleNV = (PFNGLVIEWPORTPOSITIONWSCALENVPROC)glewGetProcAddress((const GLubyte*)"glViewportPositionWScaleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_clip_space_w_scaling */ + +#ifdef GL_NV_command_list + +static GLboolean _glewInit_GL_NV_command_list () +{ + GLboolean r = GL_FALSE; + + r = ((glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCallCommandListNV")) == NULL) || r; + r = ((glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)glewGetProcAddress((const GLubyte*)"glCommandListSegmentsNV")) == NULL) || r; + r = ((glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCompileCommandListNV")) == NULL) || r; + r = ((glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glCreateCommandListsNV")) == NULL) || r; + r = ((glCreateStatesNV = (PFNGLCREATESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glCreateStatesNV")) == NULL) || r; + r = ((glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteCommandListsNV")) == NULL) || r; + r = ((glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteStatesNV")) == NULL) || r; + r = ((glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsAddressNV")) == NULL) || r; + r = ((glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsNV")) == NULL) || r; + r = ((glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesAddressNV")) == NULL) || r; + r = ((glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesNV")) == NULL) || r; + r = ((glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)glewGetProcAddress((const GLubyte*)"glGetCommandHeaderNV")) == NULL) || r; + r = ((glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glGetStageIndexNV")) == NULL) || r; + r = ((glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glIsCommandListNV")) == NULL) || r; + r = ((glIsStateNV = (PFNGLISSTATENVPROC)glewGetProcAddress((const GLubyte*)"glIsStateNV")) == NULL) || r; + r = ((glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)glewGetProcAddress((const GLubyte*)"glListDrawCommandsStatesClientNV")) == NULL) || r; + r = ((glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glStateCaptureNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_command_list */ + #ifdef GL_NV_conditional_render -static GLboolean _glewInit_GL_NV_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conditional_render () { GLboolean r = GL_FALSE; @@ -7915,7 +15615,7 @@ static GLboolean _glewInit_GL_NV_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_conservative_raster -static GLboolean _glewInit_GL_NV_conservative_raster (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conservative_raster () { GLboolean r = GL_FALSE; @@ -7928,7 +15628,7 @@ static GLboolean _glewInit_GL_NV_conservative_raster (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_conservative_raster_dilate -static GLboolean _glewInit_GL_NV_conservative_raster_dilate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conservative_raster_dilate () { GLboolean r = GL_FALSE; @@ -7939,9 +15639,35 @@ static GLboolean _glewInit_GL_NV_conservative_raster_dilate (GLEW_CONTEXT_ARG_DE #endif /* GL_NV_conservative_raster_dilate */ +#ifdef GL_NV_conservative_raster_pre_snap_triangles + +static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles () +{ + GLboolean r = GL_FALSE; + + r = ((glConservativeRasterParameteriNV = (PFNGLCONSERVATIVERASTERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameteriNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +#ifdef GL_NV_copy_buffer + +static GLboolean _glewInit_GL_NV_copy_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyBufferSubDataNV = (PFNGLCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubDataNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_copy_buffer */ + #ifdef GL_NV_copy_image -static GLboolean _glewInit_GL_NV_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_copy_image () { GLboolean r = GL_FALSE; @@ -7954,7 +15680,7 @@ static GLboolean _glewInit_GL_NV_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_depth_buffer_float -static GLboolean _glewInit_GL_NV_depth_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_depth_buffer_float () { GLboolean r = GL_FALSE; @@ -7967,9 +15693,36 @@ static GLboolean _glewInit_GL_NV_depth_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_depth_buffer_float */ +#ifdef GL_NV_draw_buffers + +static GLboolean _glewInit_GL_NV_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_buffers */ + +#ifdef GL_NV_draw_instanced + +static GLboolean _glewInit_GL_NV_draw_instanced () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawArraysInstancedNV = (PFNGLDRAWARRAYSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedNV")) == NULL) || r; + r = ((glDrawElementsInstancedNV = (PFNGLDRAWELEMENTSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_instanced */ + #ifdef GL_NV_draw_texture -static GLboolean _glewInit_GL_NV_draw_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_draw_texture () { GLboolean r = GL_FALSE; @@ -7980,9 +15733,26 @@ static GLboolean _glewInit_GL_NV_draw_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_draw_texture */ +#ifdef GL_NV_draw_vulkan_image + +static GLboolean _glewInit_GL_NV_draw_vulkan_image () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawVkImageNV = (PFNGLDRAWVKIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glDrawVkImageNV")) == NULL) || r; + r = ((glGetVkProcAddrNV = (PFNGLGETVKPROCADDRNVPROC)glewGetProcAddress((const GLubyte*)"glGetVkProcAddrNV")) == NULL) || r; + r = ((glSignalVkFenceNV = (PFNGLSIGNALVKFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkFenceNV")) == NULL) || r; + r = ((glSignalVkSemaphoreNV = (PFNGLSIGNALVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkSemaphoreNV")) == NULL) || r; + r = ((glWaitVkSemaphoreNV = (PFNGLWAITVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glWaitVkSemaphoreNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_vulkan_image */ + #ifdef GL_NV_evaluators -static GLboolean _glewInit_GL_NV_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_evaluators () { GLboolean r = GL_FALSE; @@ -8003,7 +15773,7 @@ static GLboolean _glewInit_GL_NV_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_explicit_multisample -static GLboolean _glewInit_GL_NV_explicit_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_explicit_multisample () { GLboolean r = GL_FALSE; @@ -8018,7 +15788,7 @@ static GLboolean _glewInit_GL_NV_explicit_multisample (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_NV_fence -static GLboolean _glewInit_GL_NV_fence (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fence () { GLboolean r = GL_FALSE; @@ -8037,7 +15807,7 @@ static GLboolean _glewInit_GL_NV_fence (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_fragment_coverage_to_color -static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fragment_coverage_to_color () { GLboolean r = GL_FALSE; @@ -8050,7 +15820,7 @@ static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (GLEW_CONTEXT_ARG_DE #ifdef GL_NV_fragment_program -static GLboolean _glewInit_GL_NV_fragment_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fragment_program () { GLboolean r = GL_FALSE; @@ -8066,9 +15836,35 @@ static GLboolean _glewInit_GL_NV_fragment_program (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_fragment_program */ +#ifdef GL_NV_framebuffer_blit + +static GLboolean _glewInit_GL_NV_framebuffer_blit () +{ + GLboolean r = GL_FALSE; + + r = ((glBlitFramebufferNV = (PFNGLBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_framebuffer_blit */ + +#ifdef GL_NV_framebuffer_multisample + +static GLboolean _glewInit_GL_NV_framebuffer_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glRenderbufferStorageMultisampleNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_framebuffer_multisample */ + #ifdef GL_NV_framebuffer_multisample_coverage -static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage () { GLboolean r = GL_FALSE; @@ -8081,7 +15877,7 @@ static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (GLEW_CONTEXT_ #ifdef GL_NV_geometry_program4 -static GLboolean _glewInit_GL_NV_geometry_program4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_geometry_program4 () { GLboolean r = GL_FALSE; @@ -8092,9 +15888,33 @@ static GLboolean _glewInit_GL_NV_geometry_program4 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_geometry_program4 */ +#ifdef GL_NV_gpu_multicast + +static GLboolean _glewInit_GL_NV_gpu_multicast () +{ + GLboolean r = GL_FALSE; + + r = ((glMulticastBarrierNV = (PFNGLMULTICASTBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBarrierNV")) == NULL) || r; + r = ((glMulticastBlitFramebufferNV = (PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBlitFramebufferNV")) == NULL) || r; + r = ((glMulticastBufferSubDataNV = (PFNGLMULTICASTBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBufferSubDataNV")) == NULL) || r; + r = ((glMulticastCopyBufferSubDataNV = (PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyBufferSubDataNV")) == NULL) || r; + r = ((glMulticastCopyImageSubDataNV = (PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyImageSubDataNV")) == NULL) || r; + r = ((glMulticastFramebufferSampleLocationsfvNV = (PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastFramebufferSampleLocationsfvNV")) == NULL) || r; + r = ((glMulticastGetQueryObjecti64vNV = (PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjecti64vNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectivNV = (PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectivNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectui64vNV = (PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectui64vNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectuivNV = (PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectuivNV")) == NULL) || r; + r = ((glMulticastWaitSyncNV = (PFNGLMULTICASTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastWaitSyncNV")) == NULL) || r; + r = ((glRenderGpuMaskNV = (PFNGLRENDERGPUMASKNVPROC)glewGetProcAddress((const GLubyte*)"glRenderGpuMaskNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_gpu_multicast */ + #ifdef GL_NV_gpu_program4 -static GLboolean _glewInit_GL_NV_gpu_program4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_gpu_program4 () { GLboolean r = GL_FALSE; @@ -8118,7 +15938,7 @@ static GLboolean _glewInit_GL_NV_gpu_program4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_gpu_shader5 -static GLboolean _glewInit_GL_NV_gpu_shader5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_gpu_shader5 () { GLboolean r = GL_FALSE; @@ -8164,7 +15984,7 @@ static GLboolean _glewInit_GL_NV_gpu_shader5 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_half_float -static GLboolean _glewInit_GL_NV_half_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_half_float () { GLboolean r = GL_FALSE; @@ -8220,9 +16040,22 @@ static GLboolean _glewInit_GL_NV_half_float (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_half_float */ +#ifdef GL_NV_instanced_arrays + +static GLboolean _glewInit_GL_NV_instanced_arrays () +{ + GLboolean r = GL_FALSE; + + r = ((glVertexAttribDivisorNV = (PFNGLVERTEXATTRIBDIVISORNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_instanced_arrays */ + #ifdef GL_NV_internalformat_sample_query -static GLboolean _glewInit_GL_NV_internalformat_sample_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_internalformat_sample_query () { GLboolean r = GL_FALSE; @@ -8233,9 +16066,61 @@ static GLboolean _glewInit_GL_NV_internalformat_sample_query (GLEW_CONTEXT_ARG_D #endif /* GL_NV_internalformat_sample_query */ +#ifdef GL_NV_memory_attachment + +static GLboolean _glewInit_GL_NV_memory_attachment () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferAttachMemoryNV = (PFNGLBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glBufferAttachMemoryNV")) == NULL) || r; + r = ((glGetMemoryObjectDetachedResourcesuivNV = (PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectDetachedResourcesuivNV")) == NULL) || r; + r = ((glNamedBufferAttachMemoryNV = (PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferAttachMemoryNV")) == NULL) || r; + r = ((glResetMemoryObjectParameterNV = (PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)glewGetProcAddress((const GLubyte*)"glResetMemoryObjectParameterNV")) == NULL) || r; + r = ((glTexAttachMemoryNV = (PFNGLTEXATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTexAttachMemoryNV")) == NULL) || r; + r = ((glTextureAttachMemoryNV = (PFNGLTEXTUREATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTextureAttachMemoryNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_memory_attachment */ + +#ifdef GL_NV_mesh_shader + +static GLboolean _glewInit_GL_NV_mesh_shader () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawMeshTasksIndirectNV = (PFNGLDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksIndirectNV")) == NULL) || r; + r = ((glDrawMeshTasksNV = (PFNGLDRAWMESHTASKSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksNV")) == NULL) || r; + r = ((glMultiDrawMeshTasksIndirectCountNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectCountNV")) == NULL) || r; + r = ((glMultiDrawMeshTasksIndirectNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_mesh_shader */ + +#ifdef GL_NV_non_square_matrices + +static GLboolean _glewInit_GL_NV_non_square_matrices () +{ + GLboolean r = GL_FALSE; + + r = ((glUniformMatrix2x3fvNV = (PFNGLUNIFORMMATRIX2X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fvNV")) == NULL) || r; + r = ((glUniformMatrix2x4fvNV = (PFNGLUNIFORMMATRIX2X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fvNV")) == NULL) || r; + r = ((glUniformMatrix3x2fvNV = (PFNGLUNIFORMMATRIX3X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fvNV")) == NULL) || r; + r = ((glUniformMatrix3x4fvNV = (PFNGLUNIFORMMATRIX3X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fvNV")) == NULL) || r; + r = ((glUniformMatrix4x2fvNV = (PFNGLUNIFORMMATRIX4X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fvNV")) == NULL) || r; + r = ((glUniformMatrix4x3fvNV = (PFNGLUNIFORMMATRIX4X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fvNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_non_square_matrices */ + #ifdef GL_NV_occlusion_query -static GLboolean _glewInit_GL_NV_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_occlusion_query () { GLboolean r = GL_FALSE; @@ -8254,7 +16139,7 @@ static GLboolean _glewInit_GL_NV_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_parameter_buffer_object -static GLboolean _glewInit_GL_NV_parameter_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_parameter_buffer_object () { GLboolean r = GL_FALSE; @@ -8269,7 +16154,7 @@ static GLboolean _glewInit_GL_NV_parameter_buffer_object (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_NV_path_rendering -static GLboolean _glewInit_GL_NV_path_rendering (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_path_rendering () { GLboolean r = GL_FALSE; @@ -8345,7 +16230,7 @@ static GLboolean _glewInit_GL_NV_path_rendering (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_pixel_data_range -static GLboolean _glewInit_GL_NV_pixel_data_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_pixel_data_range () { GLboolean r = GL_FALSE; @@ -8359,7 +16244,7 @@ static GLboolean _glewInit_GL_NV_pixel_data_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_point_sprite -static GLboolean _glewInit_GL_NV_point_sprite (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_point_sprite () { GLboolean r = GL_FALSE; @@ -8371,9 +16256,22 @@ static GLboolean _glewInit_GL_NV_point_sprite (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_point_sprite */ +#ifdef GL_NV_polygon_mode + +static GLboolean _glewInit_GL_NV_polygon_mode () +{ + GLboolean r = GL_FALSE; + + r = ((glPolygonModeNV = (PFNGLPOLYGONMODENVPROC)glewGetProcAddress((const GLubyte*)"glPolygonModeNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_polygon_mode */ + #ifdef GL_NV_present_video -static GLboolean _glewInit_GL_NV_present_video (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_present_video () { GLboolean r = GL_FALSE; @@ -8391,7 +16289,7 @@ static GLboolean _glewInit_GL_NV_present_video (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_primitive_restart -static GLboolean _glewInit_GL_NV_primitive_restart (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_primitive_restart () { GLboolean r = GL_FALSE; @@ -8403,9 +16301,22 @@ static GLboolean _glewInit_GL_NV_primitive_restart (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_primitive_restart */ +#ifdef GL_NV_read_buffer + +static GLboolean _glewInit_GL_NV_read_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glReadBufferNV = (PFNGLREADBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glReadBufferNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_read_buffer */ + #ifdef GL_NV_register_combiners -static GLboolean _glewInit_GL_NV_register_combiners (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_register_combiners () { GLboolean r = GL_FALSE; @@ -8430,7 +16341,7 @@ static GLboolean _glewInit_GL_NV_register_combiners (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_register_combiners2 -static GLboolean _glewInit_GL_NV_register_combiners2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_register_combiners2 () { GLboolean r = GL_FALSE; @@ -8444,21 +16355,36 @@ static GLboolean _glewInit_GL_NV_register_combiners2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_sample_locations -static GLboolean _glewInit_GL_NV_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_sample_locations () { GLboolean r = GL_FALSE; r = ((glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvNV")) == NULL) || r; r = ((glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvNV")) == NULL) || r; + r = ((glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)glewGetProcAddress((const GLubyte*)"glResolveDepthValuesNV")) == NULL) || r; return r; } #endif /* GL_NV_sample_locations */ +#ifdef GL_NV_scissor_exclusive + +static GLboolean _glewInit_GL_NV_scissor_exclusive () +{ + GLboolean r = GL_FALSE; + + r = ((glScissorExclusiveArrayvNV = (PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveArrayvNV")) == NULL) || r; + r = ((glScissorExclusiveNV = (PFNGLSCISSOREXCLUSIVENVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_scissor_exclusive */ + #ifdef GL_NV_shader_buffer_load -static GLboolean _glewInit_GL_NV_shader_buffer_load (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_shader_buffer_load () { GLboolean r = GL_FALSE; @@ -8481,9 +16407,45 @@ static GLboolean _glewInit_GL_NV_shader_buffer_load (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_shader_buffer_load */ +#ifdef GL_NV_shading_rate_image + +static GLboolean _glewInit_GL_NV_shading_rate_image () +{ + GLboolean r = GL_FALSE; + + r = ((glBindShadingRateImageNV = (PFNGLBINDSHADINGRATEIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glBindShadingRateImageNV")) == NULL) || r; + r = ((glGetShadingRateImagePaletteNV = (PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateImagePaletteNV")) == NULL) || r; + r = ((glGetShadingRateSampleLocationivNV = (PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateSampleLocationivNV")) == NULL) || r; + r = ((glShadingRateImageBarrierNV = (PFNGLSHADINGRATEIMAGEBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImageBarrierNV")) == NULL) || r; + r = ((glShadingRateImagePaletteNV = (PFNGLSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImagePaletteNV")) == NULL) || r; + r = ((glShadingRateSampleOrderCustomNV = (PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateSampleOrderCustomNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_shading_rate_image */ + +#ifdef GL_NV_texture_array + +static GLboolean _glewInit_GL_NV_texture_array () +{ + GLboolean r = GL_FALSE; + + r = ((glCompressedTexImage3DNV = (PFNGLCOMPRESSEDTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DNV")) == NULL) || r; + r = ((glCompressedTexSubImage3DNV = (PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DNV")) == NULL) || r; + r = ((glCopyTexSubImage3DNV = (PFNGLCOPYTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DNV")) == NULL) || r; + r = ((glFramebufferTextureLayerNV = (PFNGLFRAMEBUFFERTEXTURELAYERNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerNV")) == NULL) || r; + r = ((glTexImage3DNV = (PFNGLTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DNV")) == NULL) || r; + r = ((glTexSubImage3DNV = (PFNGLTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_texture_array */ + #ifdef GL_NV_texture_barrier -static GLboolean _glewInit_GL_NV_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_texture_barrier () { GLboolean r = GL_FALSE; @@ -8496,7 +16458,7 @@ static GLboolean _glewInit_GL_NV_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_texture_multisample -static GLboolean _glewInit_GL_NV_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_texture_multisample () { GLboolean r = GL_FALSE; @@ -8514,7 +16476,7 @@ static GLboolean _glewInit_GL_NV_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_transform_feedback -static GLboolean _glewInit_GL_NV_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_transform_feedback () { GLboolean r = GL_FALSE; @@ -8537,7 +16499,7 @@ static GLboolean _glewInit_GL_NV_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_transform_feedback2 -static GLboolean _glewInit_GL_NV_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_transform_feedback2 () { GLboolean r = GL_FALSE; @@ -8556,7 +16518,7 @@ static GLboolean _glewInit_GL_NV_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_vdpau_interop -static GLboolean _glewInit_GL_NV_vdpau_interop (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vdpau_interop () { GLboolean r = GL_FALSE; @@ -8576,9 +16538,22 @@ static GLboolean _glewInit_GL_NV_vdpau_interop (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_vdpau_interop */ +#ifdef GL_NV_vdpau_interop2 + +static GLboolean _glewInit_GL_NV_vdpau_interop2 () +{ + GLboolean r = GL_FALSE; + + r = ((glVDPAURegisterVideoSurfaceWithPictureStructureNV = (PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterVideoSurfaceWithPictureStructureNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_vdpau_interop2 */ + #ifdef GL_NV_vertex_array_range -static GLboolean _glewInit_GL_NV_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -8592,7 +16567,7 @@ static GLboolean _glewInit_GL_NV_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_vertex_attrib_integer_64bit -static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit () { GLboolean r = GL_FALSE; @@ -8623,7 +16598,7 @@ static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (GLEW_CONTEXT_ARG_D #ifdef GL_NV_vertex_buffer_unified_memory -static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory () { GLboolean r = GL_FALSE; @@ -8647,7 +16622,7 @@ static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (GLEW_CONTEXT_ARG_ #ifdef GL_NV_vertex_program -static GLboolean _glewInit_GL_NV_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_program () { GLboolean r = GL_FALSE; @@ -8723,7 +16698,7 @@ static GLboolean _glewInit_GL_NV_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_video_capture -static GLboolean _glewInit_GL_NV_video_capture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_video_capture () { GLboolean r = GL_FALSE; @@ -8745,9 +16720,216 @@ static GLboolean _glewInit_GL_NV_video_capture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_video_capture */ +#ifdef GL_NV_viewport_array + +static GLboolean _glewInit_GL_NV_viewport_array () +{ + GLboolean r = GL_FALSE; + + r = ((glDepthRangeArrayfvNV = (PFNGLDEPTHRANGEARRAYFVNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayfvNV")) == NULL) || r; + r = ((glDepthRangeIndexedfNV = (PFNGLDEPTHRANGEINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexedfNV")) == NULL) || r; + r = ((glDisableiNV = (PFNGLDISABLEINVPROC)glewGetProcAddress((const GLubyte*)"glDisableiNV")) == NULL) || r; + r = ((glEnableiNV = (PFNGLENABLEINVPROC)glewGetProcAddress((const GLubyte*)"glEnableiNV")) == NULL) || r; + r = ((glGetFloati_vNV = (PFNGLGETFLOATI_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vNV")) == NULL) || r; + r = ((glIsEnablediNV = (PFNGLISENABLEDINVPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediNV")) == NULL) || r; + r = ((glScissorArrayvNV = (PFNGLSCISSORARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayvNV")) == NULL) || r; + r = ((glScissorIndexedNV = (PFNGLSCISSORINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedNV")) == NULL) || r; + r = ((glScissorIndexedvNV = (PFNGLSCISSORINDEXEDVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedvNV")) == NULL) || r; + r = ((glViewportArrayvNV = (PFNGLVIEWPORTARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayvNV")) == NULL) || r; + r = ((glViewportIndexedfNV = (PFNGLVIEWPORTINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfNV")) == NULL) || r; + r = ((glViewportIndexedfvNV = (PFNGLVIEWPORTINDEXEDFVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfvNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_viewport_array */ + +#ifdef GL_NV_viewport_swizzle + +static GLboolean _glewInit_GL_NV_viewport_swizzle () +{ + GLboolean r = GL_FALSE; + + r = ((glViewportSwizzleNV = (PFNGLVIEWPORTSWIZZLENVPROC)glewGetProcAddress((const GLubyte*)"glViewportSwizzleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_viewport_swizzle */ + +#ifdef GL_OES_EGL_image + +static GLboolean _glewInit_GL_OES_EGL_image () +{ + GLboolean r = GL_FALSE; + + r = ((glEGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetRenderbufferStorageOES")) == NULL) || r; + r = ((glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexture2DOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_EGL_image */ + +#ifdef GL_OES_blend_equation_separate + +static GLboolean _glewInit_GL_OES_blend_equation_separate () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateOES = (PFNGLBLENDEQUATIONSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_equation_separate */ + +#ifdef GL_OES_blend_func_separate + +static GLboolean _glewInit_GL_OES_blend_func_separate () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendFuncSeparateOES = (PFNGLBLENDFUNCSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_func_separate */ + +#ifdef GL_OES_blend_subtract + +static GLboolean _glewInit_GL_OES_blend_subtract () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationOES = (PFNGLBLENDEQUATIONOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_subtract */ + +#ifdef GL_OES_copy_image + +static GLboolean _glewInit_GL_OES_copy_image () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyImageSubDataOES = (PFNGLCOPYIMAGESUBDATAOESPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_copy_image */ + +#ifdef GL_OES_draw_buffers_indexed + +static GLboolean _glewInit_GL_OES_draw_buffers_indexed () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateiOES = (PFNGLBLENDEQUATIONSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiOES")) == NULL) || r; + r = ((glBlendEquationiOES = (PFNGLBLENDEQUATIONIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiOES")) == NULL) || r; + r = ((glBlendFuncSeparateiOES = (PFNGLBLENDFUNCSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiOES")) == NULL) || r; + r = ((glBlendFunciOES = (PFNGLBLENDFUNCIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciOES")) == NULL) || r; + r = ((glColorMaskiOES = (PFNGLCOLORMASKIOESPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiOES")) == NULL) || r; + r = ((glDisableiOES = (PFNGLDISABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glDisableiOES")) == NULL) || r; + r = ((glEnableiOES = (PFNGLENABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glEnableiOES")) == NULL) || r; + r = ((glIsEnablediOES = (PFNGLISENABLEDIOESPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_draw_buffers_indexed */ + +#ifdef GL_OES_framebuffer_object + +static GLboolean _glewInit_GL_OES_framebuffer_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBindFramebufferOES = (PFNGLBINDFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindFramebufferOES")) == NULL) || r; + r = ((glBindRenderbufferOES = (PFNGLBINDRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbufferOES")) == NULL) || r; + r = ((glCheckFramebufferStatusOES = (PFNGLCHECKFRAMEBUFFERSTATUSOESPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatusOES")) == NULL) || r; + r = ((glDeleteFramebuffersOES = (PFNGLDELETEFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffersOES")) == NULL) || r; + r = ((glDeleteRenderbuffersOES = (PFNGLDELETERENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffersOES")) == NULL) || r; + r = ((glFramebufferRenderbufferOES = (PFNGLFRAMEBUFFERRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbufferOES")) == NULL) || r; + r = ((glFramebufferTexture2DOES = (PFNGLFRAMEBUFFERTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DOES")) == NULL) || r; + r = ((glGenFramebuffersOES = (PFNGLGENFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffersOES")) == NULL) || r; + r = ((glGenRenderbuffersOES = (PFNGLGENRENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffersOES")) == NULL) || r; + r = ((glGenerateMipmapOES = (PFNGLGENERATEMIPMAPOESPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmapOES")) == NULL) || r; + r = ((glGetFramebufferAttachmentParameterivOES = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameterivOES")) == NULL) || r; + r = ((glGetRenderbufferParameterivOES = (PFNGLGETRENDERBUFFERPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameterivOES")) == NULL) || r; + r = ((glIsFramebufferOES = (PFNGLISFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsFramebufferOES")) == NULL) || r; + r = ((glIsRenderbufferOES = (PFNGLISRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbufferOES")) == NULL) || r; + r = ((glRenderbufferStorageOES = (PFNGLRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_framebuffer_object */ + +#ifdef GL_OES_get_program_binary + +static GLboolean _glewInit_GL_OES_get_program_binary () +{ + GLboolean r = GL_FALSE; + + r = ((glGetProgramBinaryOES = (PFNGLGETPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glGetProgramBinaryOES")) == NULL) || r; + r = ((glProgramBinaryOES = (PFNGLPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glProgramBinaryOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_get_program_binary */ + +#ifdef GL_OES_mapbuffer + +static GLboolean _glewInit_GL_OES_mapbuffer () +{ + GLboolean r = GL_FALSE; + + r = ((glGetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointervOES")) == NULL) || r; + r = ((glMapBufferOES = (PFNGLMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glMapBufferOES")) == NULL) || r; + r = ((glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glUnmapBufferOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_mapbuffer */ + +#ifdef GL_OES_matrix_palette + +static GLboolean _glewInit_GL_OES_matrix_palette () +{ + GLboolean r = GL_FALSE; + + r = ((glCurrentPaletteMatrixOES = (PFNGLCURRENTPALETTEMATRIXOESPROC)glewGetProcAddress((const GLubyte*)"glCurrentPaletteMatrixOES")) == NULL) || r; + r = ((glMatrixIndexPointerOES = (PFNGLMATRIXINDEXPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexPointerOES")) == NULL) || r; + r = ((glWeightPointerOES = (PFNGLWEIGHTPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glWeightPointerOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_matrix_palette */ + +#ifdef GL_OES_sample_shading + +static GLboolean _glewInit_GL_OES_sample_shading () +{ + GLboolean r = GL_FALSE; + + r = ((glMinSampleShadingOES = (PFNGLMINSAMPLESHADINGOESPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShadingOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_sample_shading */ + #ifdef GL_OES_single_precision -static GLboolean _glewInit_GL_OES_single_precision (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_OES_single_precision () { GLboolean r = GL_FALSE; @@ -8763,22 +16945,270 @@ static GLboolean _glewInit_GL_OES_single_precision (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_OES_single_precision */ +#ifdef GL_OES_texture_3D + +static GLboolean _glewInit_GL_OES_texture_3D () +{ + GLboolean r = GL_FALSE; + + r = ((glCompressedTexImage3DOES = (PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DOES")) == NULL) || r; + r = ((glCompressedTexSubImage3DOES = (PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DOES")) == NULL) || r; + r = ((glCopyTexSubImage3DOES = (PFNGLCOPYTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DOES")) == NULL) || r; + r = ((glFramebufferTexture3DOES = (PFNGLFRAMEBUFFERTEXTURE3DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3DOES")) == NULL) || r; + r = ((glTexImage3DOES = (PFNGLTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DOES")) == NULL) || r; + r = ((glTexSubImage3DOES = (PFNGLTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_3D */ + +#ifdef GL_OES_texture_border_clamp + +static GLboolean _glewInit_GL_OES_texture_border_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glGetSamplerParameterIivOES = (PFNGLGETSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivOES")) == NULL) || r; + r = ((glGetSamplerParameterIuivOES = (PFNGLGETSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivOES")) == NULL) || r; + r = ((glGetTexParameterIivOES = (PFNGLGETTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIivOES")) == NULL) || r; + r = ((glGetTexParameterIuivOES = (PFNGLGETTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuivOES")) == NULL) || r; + r = ((glSamplerParameterIivOES = (PFNGLSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivOES")) == NULL) || r; + r = ((glSamplerParameterIuivOES = (PFNGLSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivOES")) == NULL) || r; + r = ((glTexParameterIivOES = (PFNGLTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIivOES")) == NULL) || r; + r = ((glTexParameterIuivOES = (PFNGLTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuivOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_border_clamp */ + +#ifdef GL_OES_texture_buffer + +static GLboolean _glewInit_GL_OES_texture_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glTexBufferOES = (PFNGLTEXBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferOES")) == NULL) || r; + r = ((glTexBufferRangeOES = (PFNGLTEXBUFFERRANGEOESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferRangeOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_buffer */ + +#ifdef GL_OES_texture_cube_map + +static GLboolean _glewInit_GL_OES_texture_cube_map () +{ + GLboolean r = GL_FALSE; + + r = ((glGetTexGenfvOES = (PFNGLGETTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenfvOES")) == NULL) || r; + r = ((glGetTexGenivOES = (PFNGLGETTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenivOES")) == NULL) || r; + r = ((glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenxvOES")) == NULL) || r; + r = ((glTexGenfOES = (PFNGLTEXGENFOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfOES")) == NULL) || r; + r = ((glTexGenfvOES = (PFNGLTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfvOES")) == NULL) || r; + r = ((glTexGeniOES = (PFNGLTEXGENIOESPROC)glewGetProcAddress((const GLubyte*)"glTexGeniOES")) == NULL) || r; + r = ((glTexGenivOES = (PFNGLTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenivOES")) == NULL) || r; + r = ((glTexGenxOES = (PFNGLTEXGENXOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxOES")) == NULL) || r; + r = ((glTexGenxvOES = (PFNGLTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxvOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_cube_map */ + +#ifdef GL_OES_texture_storage_multisample_2d_array + +static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array () +{ + GLboolean r = GL_FALSE; + + r = ((glTexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DMultisampleOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +#ifdef GL_OES_texture_view + +static GLboolean _glewInit_GL_OES_texture_view () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureViewOES = (PFNGLTEXTUREVIEWOESPROC)glewGetProcAddress((const GLubyte*)"glTextureViewOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_view */ + +#ifdef GL_OES_vertex_array_object + +static GLboolean _glewInit_GL_OES_vertex_array_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArrayOES")) == NULL) || r; + r = ((glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysOES")) == NULL) || r; + r = ((glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysOES")) == NULL) || r; + r = ((glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArrayOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_vertex_array_object */ + #ifdef GL_OVR_multiview -static GLboolean _glewInit_GL_OVR_multiview (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_OVR_multiview () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultiviewOVR")) == NULL) || r; + r = ((glNamedFramebufferTextureMultiviewOVR = (PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureMultiviewOVR")) == NULL) || r; return r; } #endif /* GL_OVR_multiview */ +#ifdef GL_OVR_multiview_multisampled_render_to_texture + +static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTextureMultisampleMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultisampleMultiviewOVR")) == NULL) || r; + + return r; +} + +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + +#ifdef GL_QCOM_alpha_test + +static GLboolean _glewInit_GL_QCOM_alpha_test () +{ + GLboolean r = GL_FALSE; + + r = ((glAlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_alpha_test */ + +#ifdef GL_QCOM_driver_control + +static GLboolean _glewInit_GL_QCOM_driver_control () +{ + GLboolean r = GL_FALSE; + + r = ((glDisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glDisableDriverControlQCOM")) == NULL) || r; + r = ((glEnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glEnableDriverControlQCOM")) == NULL) || r; + r = ((glGetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlStringQCOM")) == NULL) || r; + r = ((glGetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlsQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_driver_control */ + +#ifdef GL_QCOM_extended_get + +static GLboolean _glewInit_GL_QCOM_extended_get () +{ + GLboolean r = GL_FALSE; + + r = ((glExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBufferPointervQCOM")) == NULL) || r; + r = ((glExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBuffersQCOM")) == NULL) || r; + r = ((glExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetFramebuffersQCOM")) == NULL) || r; + r = ((glExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetRenderbuffersQCOM")) == NULL) || r; + r = ((glExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexLevelParameterivQCOM")) == NULL) || r; + r = ((glExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexSubImageQCOM")) == NULL) || r; + r = ((glExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexturesQCOM")) == NULL) || r; + r = ((glExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtTexObjectStateOverrideiQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_extended_get */ + +#ifdef GL_QCOM_extended_get2 + +static GLboolean _glewInit_GL_QCOM_extended_get2 () +{ + GLboolean r = GL_FALSE; + + r = ((glExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramBinarySourceQCOM")) == NULL) || r; + r = ((glExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramsQCOM")) == NULL) || r; + r = ((glExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetShadersQCOM")) == NULL) || r; + r = ((glExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtIsProgramBinaryQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_extended_get2 */ + +#ifdef GL_QCOM_framebuffer_foveated + +static GLboolean _glewInit_GL_QCOM_framebuffer_foveated () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFoveationConfigQCOM = (PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationConfigQCOM")) == NULL) || r; + r = ((glFramebufferFoveationParametersQCOM = (PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationParametersQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_framebuffer_foveated */ + +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + +static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFetchBarrierQCOM = (PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +#ifdef GL_QCOM_texture_foveated + +static GLboolean _glewInit_GL_QCOM_texture_foveated () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureFoveationParametersQCOM = (PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glTextureFoveationParametersQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_texture_foveated */ + +#ifdef GL_QCOM_tiled_rendering + +static GLboolean _glewInit_GL_QCOM_tiled_rendering () +{ + GLboolean r = GL_FALSE; + + r = ((glEndTilingQCOM = (PFNGLENDTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glEndTilingQCOM")) == NULL) || r; + r = ((glStartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glStartTilingQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_tiled_rendering */ + #ifdef GL_REGAL_ES1_0_compatibility -static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility () { GLboolean r = GL_FALSE; @@ -8821,7 +17251,7 @@ static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_REGAL_ES1_1_compatibility -static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility () { GLboolean r = GL_FALSE; @@ -8846,7 +17276,7 @@ static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_REGAL_error_string -static GLboolean _glewInit_GL_REGAL_error_string (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_error_string () { GLboolean r = GL_FALSE; @@ -8859,7 +17289,7 @@ static GLboolean _glewInit_GL_REGAL_error_string (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_extension_query -static GLboolean _glewInit_GL_REGAL_extension_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_extension_query () { GLboolean r = GL_FALSE; @@ -8873,7 +17303,7 @@ static GLboolean _glewInit_GL_REGAL_extension_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_log -static GLboolean _glewInit_GL_REGAL_log (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_log () { GLboolean r = GL_FALSE; @@ -8886,7 +17316,7 @@ static GLboolean _glewInit_GL_REGAL_log (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_proc_address -static GLboolean _glewInit_GL_REGAL_proc_address (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_proc_address () { GLboolean r = GL_FALSE; @@ -8899,7 +17329,7 @@ static GLboolean _glewInit_GL_REGAL_proc_address (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_detail_texture -static GLboolean _glewInit_GL_SGIS_detail_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_detail_texture () { GLboolean r = GL_FALSE; @@ -8913,7 +17343,7 @@ static GLboolean _glewInit_GL_SGIS_detail_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_fog_function -static GLboolean _glewInit_GL_SGIS_fog_function (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_fog_function () { GLboolean r = GL_FALSE; @@ -8927,7 +17357,7 @@ static GLboolean _glewInit_GL_SGIS_fog_function (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_multisample -static GLboolean _glewInit_GL_SGIS_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_multisample () { GLboolean r = GL_FALSE; @@ -8939,9 +17369,38 @@ static GLboolean _glewInit_GL_SGIS_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIS_multisample */ +#ifdef GL_SGIS_multitexture + +static GLboolean _glewInit_GL_SGIS_multitexture () +{ + GLboolean r = GL_FALSE; + + r = ((glInterleavedTextureCoordSetsSGIS = (PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC)glewGetProcAddress((const GLubyte*)"glInterleavedTextureCoordSetsSGIS")) == NULL) || r; + r = ((glSelectTextureCoordSetSGIS = (PFNGLSELECTTEXTURECOORDSETSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureCoordSetSGIS")) == NULL) || r; + r = ((glSelectTextureSGIS = (PFNGLSELECTTEXTURESGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureSGIS")) == NULL) || r; + r = ((glSelectTextureTransformSGIS = (PFNGLSELECTTEXTURETRANSFORMSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureTransformSGIS")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIS_multitexture */ + +#ifdef GL_SGIS_shared_multisample + +static GLboolean _glewInit_GL_SGIS_shared_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glMultisampleSubRectPosSGIS = (PFNGLMULTISAMPLESUBRECTPOSSGISPROC)glewGetProcAddress((const GLubyte*)"glMultisampleSubRectPosSGIS")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIS_shared_multisample */ + #ifdef GL_SGIS_sharpen_texture -static GLboolean _glewInit_GL_SGIS_sharpen_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_sharpen_texture () { GLboolean r = GL_FALSE; @@ -8955,7 +17414,7 @@ static GLboolean _glewInit_GL_SGIS_sharpen_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_texture4D -static GLboolean _glewInit_GL_SGIS_texture4D (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_texture4D () { GLboolean r = GL_FALSE; @@ -8969,7 +17428,7 @@ static GLboolean _glewInit_GL_SGIS_texture4D (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_texture_filter4 -static GLboolean _glewInit_GL_SGIS_texture_filter4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_texture_filter4 () { GLboolean r = GL_FALSE; @@ -8983,7 +17442,7 @@ static GLboolean _glewInit_GL_SGIS_texture_filter4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_async -static GLboolean _glewInit_GL_SGIX_async (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_async () { GLboolean r = GL_FALSE; @@ -8999,9 +17458,23 @@ static GLboolean _glewInit_GL_SGIX_async (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_async */ +#ifdef GL_SGIX_datapipe + +static GLboolean _glewInit_GL_SGIX_datapipe () +{ + GLboolean r = GL_FALSE; + + r = ((glAddressSpace = (PFNGLADDRESSSPACEPROC)glewGetProcAddress((const GLubyte*)"glAddressSpace")) == NULL) || r; + r = ((glDataPipe = (PFNGLDATAPIPEPROC)glewGetProcAddress((const GLubyte*)"glDataPipe")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_datapipe */ + #ifdef GL_SGIX_flush_raster -static GLboolean _glewInit_GL_SGIX_flush_raster (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_flush_raster () { GLboolean r = GL_FALSE; @@ -9012,9 +17485,23 @@ static GLboolean _glewInit_GL_SGIX_flush_raster (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_flush_raster */ +#ifdef GL_SGIX_fog_layers + +static GLboolean _glewInit_GL_SGIX_fog_layers () +{ + GLboolean r = GL_FALSE; + + r = ((glFogLayersSGIX = (PFNGLFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glFogLayersSGIX")) == NULL) || r; + r = ((glGetFogLayersSGIX = (PFNGLGETFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFogLayersSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_fog_layers */ + #ifdef GL_SGIX_fog_texture -static GLboolean _glewInit_GL_SGIX_fog_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_fog_texture () { GLboolean r = GL_FALSE; @@ -9027,7 +17514,7 @@ static GLboolean _glewInit_GL_SGIX_fog_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_fragment_specular_lighting -static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting () { GLboolean r = GL_FALSE; @@ -9056,7 +17543,7 @@ static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (GLEW_CONTEXT_ARG_ #ifdef GL_SGIX_framezoom -static GLboolean _glewInit_GL_SGIX_framezoom (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_framezoom () { GLboolean r = GL_FALSE; @@ -9067,9 +17554,61 @@ static GLboolean _glewInit_GL_SGIX_framezoom (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_framezoom */ +#ifdef GL_SGIX_igloo_interface + +static GLboolean _glewInit_GL_SGIX_igloo_interface () +{ + GLboolean r = GL_FALSE; + + r = ((glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)glewGetProcAddress((const GLubyte*)"glIglooInterfaceSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_igloo_interface */ + +#ifdef GL_SGIX_mpeg1 + +static GLboolean _glewInit_GL_SGIX_mpeg1 () +{ + GLboolean r = GL_FALSE; + + r = ((glAllocMPEGPredictorsSGIX = (PFNGLALLOCMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glAllocMPEGPredictorsSGIX")) == NULL) || r; + r = ((glDeleteMPEGPredictorsSGIX = (PFNGLDELETEMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteMPEGPredictorsSGIX")) == NULL) || r; + r = ((glGenMPEGPredictorsSGIX = (PFNGLGENMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenMPEGPredictorsSGIX")) == NULL) || r; + r = ((glGetMPEGParameterfvSGIX = (PFNGLGETMPEGPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterfvSGIX")) == NULL) || r; + r = ((glGetMPEGParameterivSGIX = (PFNGLGETMPEGPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterivSGIX")) == NULL) || r; + r = ((glGetMPEGPredictorSGIX = (PFNGLGETMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGPredictorSGIX")) == NULL) || r; + r = ((glGetMPEGQuantTableubv = (PFNGLGETMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGQuantTableubv")) == NULL) || r; + r = ((glIsMPEGPredictorSGIX = (PFNGLISMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsMPEGPredictorSGIX")) == NULL) || r; + r = ((glMPEGPredictorSGIX = (PFNGLMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glMPEGPredictorSGIX")) == NULL) || r; + r = ((glMPEGQuantTableubv = (PFNGLMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glMPEGQuantTableubv")) == NULL) || r; + r = ((glSwapMPEGPredictorsSGIX = (PFNGLSWAPMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glSwapMPEGPredictorsSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_mpeg1 */ + +#ifdef GL_SGIX_nonlinear_lighting_pervertex + +static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex () +{ + GLboolean r = GL_FALSE; + + r = ((glGetNonlinLightfvSGIX = (PFNGLGETNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinLightfvSGIX")) == NULL) || r; + r = ((glGetNonlinMaterialfvSGIX = (PFNGLGETNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinMaterialfvSGIX")) == NULL) || r; + r = ((glNonlinLightfvSGIX = (PFNGLNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinLightfvSGIX")) == NULL) || r; + r = ((glNonlinMaterialfvSGIX = (PFNGLNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinMaterialfvSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ + #ifdef GL_SGIX_pixel_texture -static GLboolean _glewInit_GL_SGIX_pixel_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_pixel_texture () { GLboolean r = GL_FALSE; @@ -9080,9 +17619,37 @@ static GLboolean _glewInit_GL_SGIX_pixel_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_pixel_texture */ +#ifdef GL_SGIX_polynomial_ffd + +static GLboolean _glewInit_GL_SGIX_polynomial_ffd () +{ + GLboolean r = GL_FALSE; + + r = ((glDeformSGIX = (PFNGLDEFORMSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeformSGIX")) == NULL) || r; + r = ((glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)glewGetProcAddress((const GLubyte*)"glLoadIdentityDeformationMapSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_polynomial_ffd */ + +#ifdef GL_SGIX_quad_mesh + +static GLboolean _glewInit_GL_SGIX_quad_mesh () +{ + GLboolean r = GL_FALSE; + + r = ((glMeshBreadthSGIX = (PFNGLMESHBREADTHSGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshBreadthSGIX")) == NULL) || r; + r = ((glMeshStrideSGIX = (PFNGLMESHSTRIDESGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshStrideSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_quad_mesh */ + #ifdef GL_SGIX_reference_plane -static GLboolean _glewInit_GL_SGIX_reference_plane (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_reference_plane () { GLboolean r = GL_FALSE; @@ -9095,7 +17662,7 @@ static GLboolean _glewInit_GL_SGIX_reference_plane (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_sprite -static GLboolean _glewInit_GL_SGIX_sprite (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_sprite () { GLboolean r = GL_FALSE; @@ -9111,7 +17678,7 @@ static GLboolean _glewInit_GL_SGIX_sprite (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_tag_sample_buffer -static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_tag_sample_buffer () { GLboolean r = GL_FALSE; @@ -9122,9 +17689,41 @@ static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_tag_sample_buffer */ +#ifdef GL_SGIX_vector_ops + +static GLboolean _glewInit_GL_SGIX_vector_ops () +{ + GLboolean r = GL_FALSE; + + r = ((glGetVectorOperationSGIX = (PFNGLGETVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetVectorOperationSGIX")) == NULL) || r; + r = ((glVectorOperationSGIX = (PFNGLVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glVectorOperationSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_vector_ops */ + +#ifdef GL_SGIX_vertex_array_object + +static GLboolean _glewInit_GL_SGIX_vertex_array_object () +{ + GLboolean r = GL_FALSE; + + r = ((glAreVertexArraysResidentSGIX = (PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glAreVertexArraysResidentSGIX")) == NULL) || r; + r = ((glBindVertexArraySGIX = (PFNGLBINDVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArraySGIX")) == NULL) || r; + r = ((glDeleteVertexArraysSGIX = (PFNGLDELETEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysSGIX")) == NULL) || r; + r = ((glGenVertexArraysSGIX = (PFNGLGENVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysSGIX")) == NULL) || r; + r = ((glIsVertexArraySGIX = (PFNGLISVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArraySGIX")) == NULL) || r; + r = ((glPrioritizeVertexArraysSGIX = (PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeVertexArraysSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_vertex_array_object */ + #ifdef GL_SGI_color_table -static GLboolean _glewInit_GL_SGI_color_table (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGI_color_table () { GLboolean r = GL_FALSE; @@ -9141,9 +17740,28 @@ static GLboolean _glewInit_GL_SGI_color_table (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGI_color_table */ +#ifdef GL_SGI_fft + +static GLboolean _glewInit_GL_SGI_fft () +{ + GLboolean r = GL_FALSE; + + r = ((glGetPixelTransformParameterfvSGI = (PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvSGI")) == NULL) || r; + r = ((glGetPixelTransformParameterivSGI = (PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivSGI")) == NULL) || r; + r = ((glPixelTransformParameterfSGI = (PFNGLPIXELTRANSFORMPARAMETERFSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfSGI")) == NULL) || r; + r = ((glPixelTransformParameterfvSGI = (PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvSGI")) == NULL) || r; + r = ((glPixelTransformParameteriSGI = (PFNGLPIXELTRANSFORMPARAMETERISGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriSGI")) == NULL) || r; + r = ((glPixelTransformParameterivSGI = (PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivSGI")) == NULL) || r; + r = ((glPixelTransformSGI = (PFNGLPIXELTRANSFORMSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformSGI")) == NULL) || r; + + return r; +} + +#endif /* GL_SGI_fft */ + #ifdef GL_SUNX_constant_data -static GLboolean _glewInit_GL_SUNX_constant_data (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUNX_constant_data () { GLboolean r = GL_FALSE; @@ -9156,7 +17774,7 @@ static GLboolean _glewInit_GL_SUNX_constant_data (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_global_alpha -static GLboolean _glewInit_GL_SUN_global_alpha (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_global_alpha () { GLboolean r = GL_FALSE; @@ -9176,7 +17794,7 @@ static GLboolean _glewInit_GL_SUN_global_alpha (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_read_video_pixels -static GLboolean _glewInit_GL_SUN_read_video_pixels (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_read_video_pixels () { GLboolean r = GL_FALSE; @@ -9189,7 +17807,7 @@ static GLboolean _glewInit_GL_SUN_read_video_pixels (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_triangle_list -static GLboolean _glewInit_GL_SUN_triangle_list (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_triangle_list () { GLboolean r = GL_FALSE; @@ -9208,7 +17826,7 @@ static GLboolean _glewInit_GL_SUN_triangle_list (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_vertex -static GLboolean _glewInit_GL_SUN_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_vertex () { GLboolean r = GL_FALSE; @@ -9260,7 +17878,7 @@ static GLboolean _glewInit_GL_SUN_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_WIN_swap_hint -static GLboolean _glewInit_GL_WIN_swap_hint (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_WIN_swap_hint () { GLboolean r = GL_FALSE; @@ -9273,35 +17891,100 @@ static GLboolean _glewInit_GL_WIN_swap_hint (GLEW_CONTEXT_ARG_DEF_INIT) /* ------------------------------------------------------------------------- */ +static int _glewExtensionCompare(const char *s1, const char *s2) +{ + /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */ + while (*s1 || *s2) + { + if (*s1 > *s2) + return 1; + if (*s1 < *s2) + return -1; + s1++; + s2++; + } + return 0; +} + +static ptrdiff_t _glewBsearchExtension(const char* name) +{ + ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2; + + while (lo <= hi) + { + ptrdiff_t mid = (lo + hi) / 2; + const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]); + if (cmp < 0) hi = mid - 1; + else if (cmp > 0) lo = mid + 1; + else return mid; + } + return -1; +} + +static GLboolean *_glewGetExtensionString(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return &_glewExtensionString[n]; + return NULL; +} + +static GLboolean *_glewGetExtensionEnable(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return _glewExtensionEnabled[n]; + return NULL; +} + +static const char *_glewNextSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j!=' ' && *j) ++j; + return j; +} + +static const char *_glewNextNonSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j==' ') ++j; + return j; +} + GLboolean GLEWAPIENTRY glewGetExtension (const char* name) -{ - const GLubyte* start; - const GLubyte* end; - start = (const GLubyte*)glGetString(GL_EXTENSIONS); - if (start == 0) - return GL_FALSE; - end = start + _glewStrLen(start); - return _glewSearchExtension(name, start, end); +{ + GLboolean *enable = _glewGetExtensionString(name); + if (enable) + return *enable; + return GL_FALSE; } /* ------------------------------------------------------------------------- */ -#ifndef GLEW_MX -static -#endif -GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name); +typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); + +static GLenum GLEWAPIENTRY glewContextInit () { + PFNGLGETSTRINGPROC getString; const GLubyte* s; GLuint dot; GLint major, minor; - const GLubyte* extStart; - const GLubyte* extEnd; + + #ifdef _WIN32 + getString = glGetString; + #else + getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString"); + if (!getString) + return GLEW_ERROR_NO_GL_VERSION; + #endif + /* query opengl version */ - s = glGetString(GL_VERSION); + s = getString(GL_VERSION); dot = _glewStrCLen(s, '.'); if (dot == 0) return GLEW_ERROR_NO_GL_VERSION; - + major = s[dot-1]-'0'; minor = s[dot+1]-'0'; @@ -9309,7 +17992,6 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) minor = 0; if (major<0 || major>9) return GLEW_ERROR_NO_GL_VERSION; - if (major == 1 && minor == 0) { @@ -9317,7 +17999,8 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) } else { - GLEW_VERSION_4_5 = ( major > 4 ) || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_5 = GLEW_VERSION_4_6 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE; @@ -9327,2047 +18010,3026 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE; - GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; - GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; } - /* query opengl extensions string */ - extStart = glGetString(GL_EXTENSIONS); - if (extStart == 0) - extStart = (const GLubyte*)""; - extEnd = extStart + _glewStrLen(extStart); + { + size_t i; + for (i = 0; i < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++i) + _glewExtensionString[i] = GL_FALSE; + } - /* initialize extensions */ + if (GLEW_VERSION_3_0) + { + GLint n = 0; + GLint i; + PFNGLGETINTEGERVPROC getIntegerv; + PFNGLGETSTRINGIPROC getStringi; + const char *ext; + GLboolean *enable; + + #ifdef _WIN32 + getIntegerv = glGetIntegerv; + #else + getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv"); + #endif + + if (getIntegerv) + getIntegerv(GL_NUM_EXTENSIONS, &n); + + /* glGetStringi is OpenGL 3.0 */ + getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi"); + if (getStringi) + for (i = 0; i= (ptrdiff_t) sizeof(ext)) + continue; + _glewStrCopy(ext, i, ' '); + + /* Based on extension string(s), glewGetExtension purposes */ + enable = _glewGetExtensionString(ext); + if (enable) + *enable = GL_TRUE; + + /* Based on extension string(s), experimental mode, glewIsSupported purposes */ + enable = _glewGetExtensionEnable(ext); + if (enable) + *enable = GL_TRUE; + } + } + } #ifdef GL_VERSION_1_2 - if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2(); #endif /* GL_VERSION_1_2 */ -#ifdef GL_VERSION_1_2_1 -#endif /* GL_VERSION_1_2_1 */ #ifdef GL_VERSION_1_3 - if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3(); #endif /* GL_VERSION_1_3 */ #ifdef GL_VERSION_1_4 - if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4(); #endif /* GL_VERSION_1_4 */ #ifdef GL_VERSION_1_5 - if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5(); #endif /* GL_VERSION_1_5 */ #ifdef GL_VERSION_2_0 - if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0(); #endif /* GL_VERSION_2_0 */ #ifdef GL_VERSION_2_1 - if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1(); #endif /* GL_VERSION_2_1 */ #ifdef GL_VERSION_3_0 - if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0(); #endif /* GL_VERSION_3_0 */ #ifdef GL_VERSION_3_1 - if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1(); #endif /* GL_VERSION_3_1 */ #ifdef GL_VERSION_3_2 - if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2(); #endif /* GL_VERSION_3_2 */ #ifdef GL_VERSION_3_3 - if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3(); #endif /* GL_VERSION_3_3 */ #ifdef GL_VERSION_4_0 - if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0(); #endif /* GL_VERSION_4_0 */ -#ifdef GL_VERSION_4_1 -#endif /* GL_VERSION_4_1 */ -#ifdef GL_VERSION_4_2 -#endif /* GL_VERSION_4_2 */ -#ifdef GL_VERSION_4_3 -#endif /* GL_VERSION_4_3 */ -#ifdef GL_VERSION_4_4 -#endif /* GL_VERSION_4_4 */ #ifdef GL_VERSION_4_5 - if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5(); #endif /* GL_VERSION_4_5 */ -#ifdef GL_3DFX_multisample - GLEW_3DFX_multisample = _glewSearchExtension("GL_3DFX_multisample", extStart, extEnd); -#endif /* GL_3DFX_multisample */ +#ifdef GL_VERSION_4_6 + if (glewExperimental || GLEW_VERSION_4_6) GLEW_VERSION_4_6 = !_glewInit_GL_VERSION_4_6(); +#endif /* GL_VERSION_4_6 */ #ifdef GL_3DFX_tbuffer - GLEW_3DFX_tbuffer = _glewSearchExtension("GL_3DFX_tbuffer", extStart, extEnd); - if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer(); #endif /* GL_3DFX_tbuffer */ -#ifdef GL_3DFX_texture_compression_FXT1 - GLEW_3DFX_texture_compression_FXT1 = _glewSearchExtension("GL_3DFX_texture_compression_FXT1", extStart, extEnd); -#endif /* GL_3DFX_texture_compression_FXT1 */ -#ifdef GL_AMD_blend_minmax_factor - GLEW_AMD_blend_minmax_factor = _glewSearchExtension("GL_AMD_blend_minmax_factor", extStart, extEnd); -#endif /* GL_AMD_blend_minmax_factor */ -#ifdef GL_AMD_conservative_depth - GLEW_AMD_conservative_depth = _glewSearchExtension("GL_AMD_conservative_depth", extStart, extEnd); -#endif /* GL_AMD_conservative_depth */ #ifdef GL_AMD_debug_output - GLEW_AMD_debug_output = _glewSearchExtension("GL_AMD_debug_output", extStart, extEnd); - if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output(); #endif /* GL_AMD_debug_output */ -#ifdef GL_AMD_depth_clamp_separate - GLEW_AMD_depth_clamp_separate = _glewSearchExtension("GL_AMD_depth_clamp_separate", extStart, extEnd); -#endif /* GL_AMD_depth_clamp_separate */ #ifdef GL_AMD_draw_buffers_blend - GLEW_AMD_draw_buffers_blend = _glewSearchExtension("GL_AMD_draw_buffers_blend", extStart, extEnd); - if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend(); #endif /* GL_AMD_draw_buffers_blend */ -#ifdef GL_AMD_gcn_shader - GLEW_AMD_gcn_shader = _glewSearchExtension("GL_AMD_gcn_shader", extStart, extEnd); -#endif /* GL_AMD_gcn_shader */ -#ifdef GL_AMD_gpu_shader_int64 - GLEW_AMD_gpu_shader_int64 = _glewSearchExtension("GL_AMD_gpu_shader_int64", extStart, extEnd); -#endif /* GL_AMD_gpu_shader_int64 */ +#ifdef GL_AMD_framebuffer_multisample_advanced + if (glewExperimental || GLEW_AMD_framebuffer_multisample_advanced) GLEW_AMD_framebuffer_multisample_advanced = !_glewInit_GL_AMD_framebuffer_multisample_advanced(); +#endif /* GL_AMD_framebuffer_multisample_advanced */ +#ifdef GL_AMD_framebuffer_sample_positions + if (glewExperimental || GLEW_AMD_framebuffer_sample_positions) GLEW_AMD_framebuffer_sample_positions = !_glewInit_GL_AMD_framebuffer_sample_positions(); +#endif /* GL_AMD_framebuffer_sample_positions */ #ifdef GL_AMD_interleaved_elements - GLEW_AMD_interleaved_elements = _glewSearchExtension("GL_AMD_interleaved_elements", extStart, extEnd); - if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements(); #endif /* GL_AMD_interleaved_elements */ #ifdef GL_AMD_multi_draw_indirect - GLEW_AMD_multi_draw_indirect = _glewSearchExtension("GL_AMD_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect(); #endif /* GL_AMD_multi_draw_indirect */ #ifdef GL_AMD_name_gen_delete - GLEW_AMD_name_gen_delete = _glewSearchExtension("GL_AMD_name_gen_delete", extStart, extEnd); - if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete(); #endif /* GL_AMD_name_gen_delete */ #ifdef GL_AMD_occlusion_query_event - GLEW_AMD_occlusion_query_event = _glewSearchExtension("GL_AMD_occlusion_query_event", extStart, extEnd); - if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event(); #endif /* GL_AMD_occlusion_query_event */ #ifdef GL_AMD_performance_monitor - GLEW_AMD_performance_monitor = _glewSearchExtension("GL_AMD_performance_monitor", extStart, extEnd); - if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor(); #endif /* GL_AMD_performance_monitor */ -#ifdef GL_AMD_pinned_memory - GLEW_AMD_pinned_memory = _glewSearchExtension("GL_AMD_pinned_memory", extStart, extEnd); -#endif /* GL_AMD_pinned_memory */ -#ifdef GL_AMD_query_buffer_object - GLEW_AMD_query_buffer_object = _glewSearchExtension("GL_AMD_query_buffer_object", extStart, extEnd); -#endif /* GL_AMD_query_buffer_object */ #ifdef GL_AMD_sample_positions - GLEW_AMD_sample_positions = _glewSearchExtension("GL_AMD_sample_positions", extStart, extEnd); - if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions(); #endif /* GL_AMD_sample_positions */ -#ifdef GL_AMD_seamless_cubemap_per_texture - GLEW_AMD_seamless_cubemap_per_texture = _glewSearchExtension("GL_AMD_seamless_cubemap_per_texture", extStart, extEnd); -#endif /* GL_AMD_seamless_cubemap_per_texture */ -#ifdef GL_AMD_shader_atomic_counter_ops - GLEW_AMD_shader_atomic_counter_ops = _glewSearchExtension("GL_AMD_shader_atomic_counter_ops", extStart, extEnd); -#endif /* GL_AMD_shader_atomic_counter_ops */ -#ifdef GL_AMD_shader_stencil_export - GLEW_AMD_shader_stencil_export = _glewSearchExtension("GL_AMD_shader_stencil_export", extStart, extEnd); -#endif /* GL_AMD_shader_stencil_export */ -#ifdef GL_AMD_shader_stencil_value_export - GLEW_AMD_shader_stencil_value_export = _glewSearchExtension("GL_AMD_shader_stencil_value_export", extStart, extEnd); -#endif /* GL_AMD_shader_stencil_value_export */ -#ifdef GL_AMD_shader_trinary_minmax - GLEW_AMD_shader_trinary_minmax = _glewSearchExtension("GL_AMD_shader_trinary_minmax", extStart, extEnd); -#endif /* GL_AMD_shader_trinary_minmax */ #ifdef GL_AMD_sparse_texture - GLEW_AMD_sparse_texture = _glewSearchExtension("GL_AMD_sparse_texture", extStart, extEnd); - if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture(); #endif /* GL_AMD_sparse_texture */ #ifdef GL_AMD_stencil_operation_extended - GLEW_AMD_stencil_operation_extended = _glewSearchExtension("GL_AMD_stencil_operation_extended", extStart, extEnd); - if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended(); #endif /* GL_AMD_stencil_operation_extended */ -#ifdef GL_AMD_texture_texture4 - GLEW_AMD_texture_texture4 = _glewSearchExtension("GL_AMD_texture_texture4", extStart, extEnd); -#endif /* GL_AMD_texture_texture4 */ -#ifdef GL_AMD_transform_feedback3_lines_triangles - GLEW_AMD_transform_feedback3_lines_triangles = _glewSearchExtension("GL_AMD_transform_feedback3_lines_triangles", extStart, extEnd); -#endif /* GL_AMD_transform_feedback3_lines_triangles */ -#ifdef GL_AMD_transform_feedback4 - GLEW_AMD_transform_feedback4 = _glewSearchExtension("GL_AMD_transform_feedback4", extStart, extEnd); -#endif /* GL_AMD_transform_feedback4 */ -#ifdef GL_AMD_vertex_shader_layer - GLEW_AMD_vertex_shader_layer = _glewSearchExtension("GL_AMD_vertex_shader_layer", extStart, extEnd); -#endif /* GL_AMD_vertex_shader_layer */ #ifdef GL_AMD_vertex_shader_tessellator - GLEW_AMD_vertex_shader_tessellator = _glewSearchExtension("GL_AMD_vertex_shader_tessellator", extStart, extEnd); - if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator(); #endif /* GL_AMD_vertex_shader_tessellator */ -#ifdef GL_AMD_vertex_shader_viewport_index - GLEW_AMD_vertex_shader_viewport_index = _glewSearchExtension("GL_AMD_vertex_shader_viewport_index", extStart, extEnd); -#endif /* GL_AMD_vertex_shader_viewport_index */ -#ifdef GL_ANGLE_depth_texture - GLEW_ANGLE_depth_texture = _glewSearchExtension("GL_ANGLE_depth_texture", extStart, extEnd); -#endif /* GL_ANGLE_depth_texture */ #ifdef GL_ANGLE_framebuffer_blit - GLEW_ANGLE_framebuffer_blit = _glewSearchExtension("GL_ANGLE_framebuffer_blit", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit(); #endif /* GL_ANGLE_framebuffer_blit */ #ifdef GL_ANGLE_framebuffer_multisample - GLEW_ANGLE_framebuffer_multisample = _glewSearchExtension("GL_ANGLE_framebuffer_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample(); #endif /* GL_ANGLE_framebuffer_multisample */ #ifdef GL_ANGLE_instanced_arrays - GLEW_ANGLE_instanced_arrays = _glewSearchExtension("GL_ANGLE_instanced_arrays", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays(); #endif /* GL_ANGLE_instanced_arrays */ -#ifdef GL_ANGLE_pack_reverse_row_order - GLEW_ANGLE_pack_reverse_row_order = _glewSearchExtension("GL_ANGLE_pack_reverse_row_order", extStart, extEnd); -#endif /* GL_ANGLE_pack_reverse_row_order */ -#ifdef GL_ANGLE_program_binary - GLEW_ANGLE_program_binary = _glewSearchExtension("GL_ANGLE_program_binary", extStart, extEnd); -#endif /* GL_ANGLE_program_binary */ -#ifdef GL_ANGLE_texture_compression_dxt1 - GLEW_ANGLE_texture_compression_dxt1 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt1", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt1 */ -#ifdef GL_ANGLE_texture_compression_dxt3 - GLEW_ANGLE_texture_compression_dxt3 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt3", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt3 */ -#ifdef GL_ANGLE_texture_compression_dxt5 - GLEW_ANGLE_texture_compression_dxt5 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt5", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt5 */ -#ifdef GL_ANGLE_texture_usage - GLEW_ANGLE_texture_usage = _glewSearchExtension("GL_ANGLE_texture_usage", extStart, extEnd); -#endif /* GL_ANGLE_texture_usage */ #ifdef GL_ANGLE_timer_query - GLEW_ANGLE_timer_query = _glewSearchExtension("GL_ANGLE_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query(); #endif /* GL_ANGLE_timer_query */ #ifdef GL_ANGLE_translated_shader_source - GLEW_ANGLE_translated_shader_source = _glewSearchExtension("GL_ANGLE_translated_shader_source", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source(); #endif /* GL_ANGLE_translated_shader_source */ -#ifdef GL_APPLE_aux_depth_stencil - GLEW_APPLE_aux_depth_stencil = _glewSearchExtension("GL_APPLE_aux_depth_stencil", extStart, extEnd); -#endif /* GL_APPLE_aux_depth_stencil */ -#ifdef GL_APPLE_client_storage - GLEW_APPLE_client_storage = _glewSearchExtension("GL_APPLE_client_storage", extStart, extEnd); -#endif /* GL_APPLE_client_storage */ +#ifdef GL_APPLE_copy_texture_levels + if (glewExperimental || GLEW_APPLE_copy_texture_levels) GLEW_APPLE_copy_texture_levels = !_glewInit_GL_APPLE_copy_texture_levels(); +#endif /* GL_APPLE_copy_texture_levels */ #ifdef GL_APPLE_element_array - GLEW_APPLE_element_array = _glewSearchExtension("GL_APPLE_element_array", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array(); #endif /* GL_APPLE_element_array */ #ifdef GL_APPLE_fence - GLEW_APPLE_fence = _glewSearchExtension("GL_APPLE_fence", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence(); #endif /* GL_APPLE_fence */ -#ifdef GL_APPLE_float_pixels - GLEW_APPLE_float_pixels = _glewSearchExtension("GL_APPLE_float_pixels", extStart, extEnd); -#endif /* GL_APPLE_float_pixels */ #ifdef GL_APPLE_flush_buffer_range - GLEW_APPLE_flush_buffer_range = _glewSearchExtension("GL_APPLE_flush_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range(); #endif /* GL_APPLE_flush_buffer_range */ +#ifdef GL_APPLE_framebuffer_multisample + if (glewExperimental || GLEW_APPLE_framebuffer_multisample) GLEW_APPLE_framebuffer_multisample = !_glewInit_GL_APPLE_framebuffer_multisample(); +#endif /* GL_APPLE_framebuffer_multisample */ #ifdef GL_APPLE_object_purgeable - GLEW_APPLE_object_purgeable = _glewSearchExtension("GL_APPLE_object_purgeable", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable(); #endif /* GL_APPLE_object_purgeable */ -#ifdef GL_APPLE_pixel_buffer - GLEW_APPLE_pixel_buffer = _glewSearchExtension("GL_APPLE_pixel_buffer", extStart, extEnd); -#endif /* GL_APPLE_pixel_buffer */ -#ifdef GL_APPLE_rgb_422 - GLEW_APPLE_rgb_422 = _glewSearchExtension("GL_APPLE_rgb_422", extStart, extEnd); -#endif /* GL_APPLE_rgb_422 */ -#ifdef GL_APPLE_row_bytes - GLEW_APPLE_row_bytes = _glewSearchExtension("GL_APPLE_row_bytes", extStart, extEnd); -#endif /* GL_APPLE_row_bytes */ -#ifdef GL_APPLE_specular_vector - GLEW_APPLE_specular_vector = _glewSearchExtension("GL_APPLE_specular_vector", extStart, extEnd); -#endif /* GL_APPLE_specular_vector */ +#ifdef GL_APPLE_sync + if (glewExperimental || GLEW_APPLE_sync) GLEW_APPLE_sync = !_glewInit_GL_APPLE_sync(); +#endif /* GL_APPLE_sync */ #ifdef GL_APPLE_texture_range - GLEW_APPLE_texture_range = _glewSearchExtension("GL_APPLE_texture_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range(); #endif /* GL_APPLE_texture_range */ -#ifdef GL_APPLE_transform_hint - GLEW_APPLE_transform_hint = _glewSearchExtension("GL_APPLE_transform_hint", extStart, extEnd); -#endif /* GL_APPLE_transform_hint */ #ifdef GL_APPLE_vertex_array_object - GLEW_APPLE_vertex_array_object = _glewSearchExtension("GL_APPLE_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object(); #endif /* GL_APPLE_vertex_array_object */ #ifdef GL_APPLE_vertex_array_range - GLEW_APPLE_vertex_array_range = _glewSearchExtension("GL_APPLE_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range(); #endif /* GL_APPLE_vertex_array_range */ #ifdef GL_APPLE_vertex_program_evaluators - GLEW_APPLE_vertex_program_evaluators = _glewSearchExtension("GL_APPLE_vertex_program_evaluators", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators(); #endif /* GL_APPLE_vertex_program_evaluators */ -#ifdef GL_APPLE_ycbcr_422 - GLEW_APPLE_ycbcr_422 = _glewSearchExtension("GL_APPLE_ycbcr_422", extStart, extEnd); -#endif /* GL_APPLE_ycbcr_422 */ #ifdef GL_ARB_ES2_compatibility - GLEW_ARB_ES2_compatibility = _glewSearchExtension("GL_ARB_ES2_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility(); #endif /* GL_ARB_ES2_compatibility */ #ifdef GL_ARB_ES3_1_compatibility - GLEW_ARB_ES3_1_compatibility = _glewSearchExtension("GL_ARB_ES3_1_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility(); #endif /* GL_ARB_ES3_1_compatibility */ #ifdef GL_ARB_ES3_2_compatibility - GLEW_ARB_ES3_2_compatibility = _glewSearchExtension("GL_ARB_ES3_2_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility(); #endif /* GL_ARB_ES3_2_compatibility */ -#ifdef GL_ARB_ES3_compatibility - GLEW_ARB_ES3_compatibility = _glewSearchExtension("GL_ARB_ES3_compatibility", extStart, extEnd); -#endif /* GL_ARB_ES3_compatibility */ -#ifdef GL_ARB_arrays_of_arrays - GLEW_ARB_arrays_of_arrays = _glewSearchExtension("GL_ARB_arrays_of_arrays", extStart, extEnd); -#endif /* GL_ARB_arrays_of_arrays */ #ifdef GL_ARB_base_instance - GLEW_ARB_base_instance = _glewSearchExtension("GL_ARB_base_instance", extStart, extEnd); - if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance(); #endif /* GL_ARB_base_instance */ #ifdef GL_ARB_bindless_texture - GLEW_ARB_bindless_texture = _glewSearchExtension("GL_ARB_bindless_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture(); #endif /* GL_ARB_bindless_texture */ #ifdef GL_ARB_blend_func_extended - GLEW_ARB_blend_func_extended = _glewSearchExtension("GL_ARB_blend_func_extended", extStart, extEnd); - if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended(); #endif /* GL_ARB_blend_func_extended */ #ifdef GL_ARB_buffer_storage - GLEW_ARB_buffer_storage = _glewSearchExtension("GL_ARB_buffer_storage", extStart, extEnd); - if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage(); #endif /* GL_ARB_buffer_storage */ #ifdef GL_ARB_cl_event - GLEW_ARB_cl_event = _glewSearchExtension("GL_ARB_cl_event", extStart, extEnd); - if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event(); #endif /* GL_ARB_cl_event */ #ifdef GL_ARB_clear_buffer_object - GLEW_ARB_clear_buffer_object = _glewSearchExtension("GL_ARB_clear_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object(); #endif /* GL_ARB_clear_buffer_object */ #ifdef GL_ARB_clear_texture - GLEW_ARB_clear_texture = _glewSearchExtension("GL_ARB_clear_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture(); #endif /* GL_ARB_clear_texture */ #ifdef GL_ARB_clip_control - GLEW_ARB_clip_control = _glewSearchExtension("GL_ARB_clip_control", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control(); #endif /* GL_ARB_clip_control */ #ifdef GL_ARB_color_buffer_float - GLEW_ARB_color_buffer_float = _glewSearchExtension("GL_ARB_color_buffer_float", extStart, extEnd); - if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float(); #endif /* GL_ARB_color_buffer_float */ -#ifdef GL_ARB_compatibility - GLEW_ARB_compatibility = _glewSearchExtension("GL_ARB_compatibility", extStart, extEnd); -#endif /* GL_ARB_compatibility */ -#ifdef GL_ARB_compressed_texture_pixel_storage - GLEW_ARB_compressed_texture_pixel_storage = _glewSearchExtension("GL_ARB_compressed_texture_pixel_storage", extStart, extEnd); -#endif /* GL_ARB_compressed_texture_pixel_storage */ #ifdef GL_ARB_compute_shader - GLEW_ARB_compute_shader = _glewSearchExtension("GL_ARB_compute_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader(); #endif /* GL_ARB_compute_shader */ #ifdef GL_ARB_compute_variable_group_size - GLEW_ARB_compute_variable_group_size = _glewSearchExtension("GL_ARB_compute_variable_group_size", extStart, extEnd); - if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size(); #endif /* GL_ARB_compute_variable_group_size */ -#ifdef GL_ARB_conditional_render_inverted - GLEW_ARB_conditional_render_inverted = _glewSearchExtension("GL_ARB_conditional_render_inverted", extStart, extEnd); -#endif /* GL_ARB_conditional_render_inverted */ -#ifdef GL_ARB_conservative_depth - GLEW_ARB_conservative_depth = _glewSearchExtension("GL_ARB_conservative_depth", extStart, extEnd); -#endif /* GL_ARB_conservative_depth */ #ifdef GL_ARB_copy_buffer - GLEW_ARB_copy_buffer = _glewSearchExtension("GL_ARB_copy_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer(); #endif /* GL_ARB_copy_buffer */ #ifdef GL_ARB_copy_image - GLEW_ARB_copy_image = _glewSearchExtension("GL_ARB_copy_image", extStart, extEnd); - if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image(); #endif /* GL_ARB_copy_image */ -#ifdef GL_ARB_cull_distance - GLEW_ARB_cull_distance = _glewSearchExtension("GL_ARB_cull_distance", extStart, extEnd); -#endif /* GL_ARB_cull_distance */ #ifdef GL_ARB_debug_output - GLEW_ARB_debug_output = _glewSearchExtension("GL_ARB_debug_output", extStart, extEnd); - if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output(); #endif /* GL_ARB_debug_output */ -#ifdef GL_ARB_depth_buffer_float - GLEW_ARB_depth_buffer_float = _glewSearchExtension("GL_ARB_depth_buffer_float", extStart, extEnd); -#endif /* GL_ARB_depth_buffer_float */ -#ifdef GL_ARB_depth_clamp - GLEW_ARB_depth_clamp = _glewSearchExtension("GL_ARB_depth_clamp", extStart, extEnd); -#endif /* GL_ARB_depth_clamp */ -#ifdef GL_ARB_depth_texture - GLEW_ARB_depth_texture = _glewSearchExtension("GL_ARB_depth_texture", extStart, extEnd); -#endif /* GL_ARB_depth_texture */ -#ifdef GL_ARB_derivative_control - GLEW_ARB_derivative_control = _glewSearchExtension("GL_ARB_derivative_control", extStart, extEnd); -#endif /* GL_ARB_derivative_control */ #ifdef GL_ARB_direct_state_access - GLEW_ARB_direct_state_access = _glewSearchExtension("GL_ARB_direct_state_access", extStart, extEnd); - if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access(); #endif /* GL_ARB_direct_state_access */ #ifdef GL_ARB_draw_buffers - GLEW_ARB_draw_buffers = _glewSearchExtension("GL_ARB_draw_buffers", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers(); #endif /* GL_ARB_draw_buffers */ #ifdef GL_ARB_draw_buffers_blend - GLEW_ARB_draw_buffers_blend = _glewSearchExtension("GL_ARB_draw_buffers_blend", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend(); #endif /* GL_ARB_draw_buffers_blend */ #ifdef GL_ARB_draw_elements_base_vertex - GLEW_ARB_draw_elements_base_vertex = _glewSearchExtension("GL_ARB_draw_elements_base_vertex", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex(); #endif /* GL_ARB_draw_elements_base_vertex */ #ifdef GL_ARB_draw_indirect - GLEW_ARB_draw_indirect = _glewSearchExtension("GL_ARB_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect(); #endif /* GL_ARB_draw_indirect */ -#ifdef GL_ARB_draw_instanced - GLEW_ARB_draw_instanced = _glewSearchExtension("GL_ARB_draw_instanced", extStart, extEnd); -#endif /* GL_ARB_draw_instanced */ -#ifdef GL_ARB_enhanced_layouts - GLEW_ARB_enhanced_layouts = _glewSearchExtension("GL_ARB_enhanced_layouts", extStart, extEnd); -#endif /* GL_ARB_enhanced_layouts */ -#ifdef GL_ARB_explicit_attrib_location - GLEW_ARB_explicit_attrib_location = _glewSearchExtension("GL_ARB_explicit_attrib_location", extStart, extEnd); -#endif /* GL_ARB_explicit_attrib_location */ -#ifdef GL_ARB_explicit_uniform_location - GLEW_ARB_explicit_uniform_location = _glewSearchExtension("GL_ARB_explicit_uniform_location", extStart, extEnd); -#endif /* GL_ARB_explicit_uniform_location */ -#ifdef GL_ARB_fragment_coord_conventions - GLEW_ARB_fragment_coord_conventions = _glewSearchExtension("GL_ARB_fragment_coord_conventions", extStart, extEnd); -#endif /* GL_ARB_fragment_coord_conventions */ -#ifdef GL_ARB_fragment_layer_viewport - GLEW_ARB_fragment_layer_viewport = _glewSearchExtension("GL_ARB_fragment_layer_viewport", extStart, extEnd); -#endif /* GL_ARB_fragment_layer_viewport */ -#ifdef GL_ARB_fragment_program - GLEW_ARB_fragment_program = _glewSearchExtension("GL_ARB_fragment_program", extStart, extEnd); -#endif /* GL_ARB_fragment_program */ -#ifdef GL_ARB_fragment_program_shadow - GLEW_ARB_fragment_program_shadow = _glewSearchExtension("GL_ARB_fragment_program_shadow", extStart, extEnd); -#endif /* GL_ARB_fragment_program_shadow */ -#ifdef GL_ARB_fragment_shader - GLEW_ARB_fragment_shader = _glewSearchExtension("GL_ARB_fragment_shader", extStart, extEnd); -#endif /* GL_ARB_fragment_shader */ -#ifdef GL_ARB_fragment_shader_interlock - GLEW_ARB_fragment_shader_interlock = _glewSearchExtension("GL_ARB_fragment_shader_interlock", extStart, extEnd); -#endif /* GL_ARB_fragment_shader_interlock */ #ifdef GL_ARB_framebuffer_no_attachments - GLEW_ARB_framebuffer_no_attachments = _glewSearchExtension("GL_ARB_framebuffer_no_attachments", extStart, extEnd); - if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments(); #endif /* GL_ARB_framebuffer_no_attachments */ #ifdef GL_ARB_framebuffer_object - GLEW_ARB_framebuffer_object = _glewSearchExtension("GL_ARB_framebuffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object(); #endif /* GL_ARB_framebuffer_object */ -#ifdef GL_ARB_framebuffer_sRGB - GLEW_ARB_framebuffer_sRGB = _glewSearchExtension("GL_ARB_framebuffer_sRGB", extStart, extEnd); -#endif /* GL_ARB_framebuffer_sRGB */ #ifdef GL_ARB_geometry_shader4 - GLEW_ARB_geometry_shader4 = _glewSearchExtension("GL_ARB_geometry_shader4", extStart, extEnd); - if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4(); #endif /* GL_ARB_geometry_shader4 */ #ifdef GL_ARB_get_program_binary - GLEW_ARB_get_program_binary = _glewSearchExtension("GL_ARB_get_program_binary", extStart, extEnd); - if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary(); #endif /* GL_ARB_get_program_binary */ #ifdef GL_ARB_get_texture_sub_image - GLEW_ARB_get_texture_sub_image = _glewSearchExtension("GL_ARB_get_texture_sub_image", extStart, extEnd); - if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image(); #endif /* GL_ARB_get_texture_sub_image */ -#ifdef GL_ARB_gpu_shader5 - GLEW_ARB_gpu_shader5 = _glewSearchExtension("GL_ARB_gpu_shader5", extStart, extEnd); -#endif /* GL_ARB_gpu_shader5 */ +#ifdef GL_ARB_gl_spirv + if (glewExperimental || GLEW_ARB_gl_spirv) GLEW_ARB_gl_spirv = !_glewInit_GL_ARB_gl_spirv(); +#endif /* GL_ARB_gl_spirv */ #ifdef GL_ARB_gpu_shader_fp64 - GLEW_ARB_gpu_shader_fp64 = _glewSearchExtension("GL_ARB_gpu_shader_fp64", extStart, extEnd); - if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64(); #endif /* GL_ARB_gpu_shader_fp64 */ #ifdef GL_ARB_gpu_shader_int64 - GLEW_ARB_gpu_shader_int64 = _glewSearchExtension("GL_ARB_gpu_shader_int64", extStart, extEnd); - if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64(); #endif /* GL_ARB_gpu_shader_int64 */ -#ifdef GL_ARB_half_float_pixel - GLEW_ARB_half_float_pixel = _glewSearchExtension("GL_ARB_half_float_pixel", extStart, extEnd); -#endif /* GL_ARB_half_float_pixel */ -#ifdef GL_ARB_half_float_vertex - GLEW_ARB_half_float_vertex = _glewSearchExtension("GL_ARB_half_float_vertex", extStart, extEnd); -#endif /* GL_ARB_half_float_vertex */ #ifdef GL_ARB_imaging - GLEW_ARB_imaging = _glewSearchExtension("GL_ARB_imaging", extStart, extEnd); - if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging(); #endif /* GL_ARB_imaging */ #ifdef GL_ARB_indirect_parameters - GLEW_ARB_indirect_parameters = _glewSearchExtension("GL_ARB_indirect_parameters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters(); #endif /* GL_ARB_indirect_parameters */ #ifdef GL_ARB_instanced_arrays - GLEW_ARB_instanced_arrays = _glewSearchExtension("GL_ARB_instanced_arrays", extStart, extEnd); - if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays(); #endif /* GL_ARB_instanced_arrays */ #ifdef GL_ARB_internalformat_query - GLEW_ARB_internalformat_query = _glewSearchExtension("GL_ARB_internalformat_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query(); #endif /* GL_ARB_internalformat_query */ #ifdef GL_ARB_internalformat_query2 - GLEW_ARB_internalformat_query2 = _glewSearchExtension("GL_ARB_internalformat_query2", extStart, extEnd); - if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2(); #endif /* GL_ARB_internalformat_query2 */ #ifdef GL_ARB_invalidate_subdata - GLEW_ARB_invalidate_subdata = _glewSearchExtension("GL_ARB_invalidate_subdata", extStart, extEnd); - if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata(); #endif /* GL_ARB_invalidate_subdata */ -#ifdef GL_ARB_map_buffer_alignment - GLEW_ARB_map_buffer_alignment = _glewSearchExtension("GL_ARB_map_buffer_alignment", extStart, extEnd); -#endif /* GL_ARB_map_buffer_alignment */ #ifdef GL_ARB_map_buffer_range - GLEW_ARB_map_buffer_range = _glewSearchExtension("GL_ARB_map_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range(); #endif /* GL_ARB_map_buffer_range */ #ifdef GL_ARB_matrix_palette - GLEW_ARB_matrix_palette = _glewSearchExtension("GL_ARB_matrix_palette", extStart, extEnd); - if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette(); #endif /* GL_ARB_matrix_palette */ #ifdef GL_ARB_multi_bind - GLEW_ARB_multi_bind = _glewSearchExtension("GL_ARB_multi_bind", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind(); #endif /* GL_ARB_multi_bind */ #ifdef GL_ARB_multi_draw_indirect - GLEW_ARB_multi_draw_indirect = _glewSearchExtension("GL_ARB_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect(); #endif /* GL_ARB_multi_draw_indirect */ #ifdef GL_ARB_multisample - GLEW_ARB_multisample = _glewSearchExtension("GL_ARB_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample(); #endif /* GL_ARB_multisample */ #ifdef GL_ARB_multitexture - GLEW_ARB_multitexture = _glewSearchExtension("GL_ARB_multitexture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture(); #endif /* GL_ARB_multitexture */ #ifdef GL_ARB_occlusion_query - GLEW_ARB_occlusion_query = _glewSearchExtension("GL_ARB_occlusion_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query(); #endif /* GL_ARB_occlusion_query */ -#ifdef GL_ARB_occlusion_query2 - GLEW_ARB_occlusion_query2 = _glewSearchExtension("GL_ARB_occlusion_query2", extStart, extEnd); -#endif /* GL_ARB_occlusion_query2 */ #ifdef GL_ARB_parallel_shader_compile - GLEW_ARB_parallel_shader_compile = _glewSearchExtension("GL_ARB_parallel_shader_compile", extStart, extEnd); - if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile(); #endif /* GL_ARB_parallel_shader_compile */ -#ifdef GL_ARB_pipeline_statistics_query - GLEW_ARB_pipeline_statistics_query = _glewSearchExtension("GL_ARB_pipeline_statistics_query", extStart, extEnd); -#endif /* GL_ARB_pipeline_statistics_query */ -#ifdef GL_ARB_pixel_buffer_object - GLEW_ARB_pixel_buffer_object = _glewSearchExtension("GL_ARB_pixel_buffer_object", extStart, extEnd); -#endif /* GL_ARB_pixel_buffer_object */ #ifdef GL_ARB_point_parameters - GLEW_ARB_point_parameters = _glewSearchExtension("GL_ARB_point_parameters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters(); #endif /* GL_ARB_point_parameters */ -#ifdef GL_ARB_point_sprite - GLEW_ARB_point_sprite = _glewSearchExtension("GL_ARB_point_sprite", extStart, extEnd); -#endif /* GL_ARB_point_sprite */ -#ifdef GL_ARB_post_depth_coverage - GLEW_ARB_post_depth_coverage = _glewSearchExtension("GL_ARB_post_depth_coverage", extStart, extEnd); -#endif /* GL_ARB_post_depth_coverage */ +#ifdef GL_ARB_polygon_offset_clamp + if (glewExperimental || GLEW_ARB_polygon_offset_clamp) GLEW_ARB_polygon_offset_clamp = !_glewInit_GL_ARB_polygon_offset_clamp(); +#endif /* GL_ARB_polygon_offset_clamp */ #ifdef GL_ARB_program_interface_query - GLEW_ARB_program_interface_query = _glewSearchExtension("GL_ARB_program_interface_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query(); #endif /* GL_ARB_program_interface_query */ #ifdef GL_ARB_provoking_vertex - GLEW_ARB_provoking_vertex = _glewSearchExtension("GL_ARB_provoking_vertex", extStart, extEnd); - if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex(); #endif /* GL_ARB_provoking_vertex */ -#ifdef GL_ARB_query_buffer_object - GLEW_ARB_query_buffer_object = _glewSearchExtension("GL_ARB_query_buffer_object", extStart, extEnd); -#endif /* GL_ARB_query_buffer_object */ -#ifdef GL_ARB_robust_buffer_access_behavior - GLEW_ARB_robust_buffer_access_behavior = _glewSearchExtension("GL_ARB_robust_buffer_access_behavior", extStart, extEnd); -#endif /* GL_ARB_robust_buffer_access_behavior */ #ifdef GL_ARB_robustness - GLEW_ARB_robustness = _glewSearchExtension("GL_ARB_robustness", extStart, extEnd); - if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness(); #endif /* GL_ARB_robustness */ -#ifdef GL_ARB_robustness_application_isolation - GLEW_ARB_robustness_application_isolation = _glewSearchExtension("GL_ARB_robustness_application_isolation", extStart, extEnd); -#endif /* GL_ARB_robustness_application_isolation */ -#ifdef GL_ARB_robustness_share_group_isolation - GLEW_ARB_robustness_share_group_isolation = _glewSearchExtension("GL_ARB_robustness_share_group_isolation", extStart, extEnd); -#endif /* GL_ARB_robustness_share_group_isolation */ #ifdef GL_ARB_sample_locations - GLEW_ARB_sample_locations = _glewSearchExtension("GL_ARB_sample_locations", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations(); #endif /* GL_ARB_sample_locations */ #ifdef GL_ARB_sample_shading - GLEW_ARB_sample_shading = _glewSearchExtension("GL_ARB_sample_shading", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading(); #endif /* GL_ARB_sample_shading */ #ifdef GL_ARB_sampler_objects - GLEW_ARB_sampler_objects = _glewSearchExtension("GL_ARB_sampler_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects(); #endif /* GL_ARB_sampler_objects */ -#ifdef GL_ARB_seamless_cube_map - GLEW_ARB_seamless_cube_map = _glewSearchExtension("GL_ARB_seamless_cube_map", extStart, extEnd); -#endif /* GL_ARB_seamless_cube_map */ -#ifdef GL_ARB_seamless_cubemap_per_texture - GLEW_ARB_seamless_cubemap_per_texture = _glewSearchExtension("GL_ARB_seamless_cubemap_per_texture", extStart, extEnd); -#endif /* GL_ARB_seamless_cubemap_per_texture */ #ifdef GL_ARB_separate_shader_objects - GLEW_ARB_separate_shader_objects = _glewSearchExtension("GL_ARB_separate_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects(); #endif /* GL_ARB_separate_shader_objects */ -#ifdef GL_ARB_shader_atomic_counter_ops - GLEW_ARB_shader_atomic_counter_ops = _glewSearchExtension("GL_ARB_shader_atomic_counter_ops", extStart, extEnd); -#endif /* GL_ARB_shader_atomic_counter_ops */ #ifdef GL_ARB_shader_atomic_counters - GLEW_ARB_shader_atomic_counters = _glewSearchExtension("GL_ARB_shader_atomic_counters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters(); #endif /* GL_ARB_shader_atomic_counters */ -#ifdef GL_ARB_shader_ballot - GLEW_ARB_shader_ballot = _glewSearchExtension("GL_ARB_shader_ballot", extStart, extEnd); -#endif /* GL_ARB_shader_ballot */ -#ifdef GL_ARB_shader_bit_encoding - GLEW_ARB_shader_bit_encoding = _glewSearchExtension("GL_ARB_shader_bit_encoding", extStart, extEnd); -#endif /* GL_ARB_shader_bit_encoding */ -#ifdef GL_ARB_shader_clock - GLEW_ARB_shader_clock = _glewSearchExtension("GL_ARB_shader_clock", extStart, extEnd); -#endif /* GL_ARB_shader_clock */ -#ifdef GL_ARB_shader_draw_parameters - GLEW_ARB_shader_draw_parameters = _glewSearchExtension("GL_ARB_shader_draw_parameters", extStart, extEnd); -#endif /* GL_ARB_shader_draw_parameters */ -#ifdef GL_ARB_shader_group_vote - GLEW_ARB_shader_group_vote = _glewSearchExtension("GL_ARB_shader_group_vote", extStart, extEnd); -#endif /* GL_ARB_shader_group_vote */ #ifdef GL_ARB_shader_image_load_store - GLEW_ARB_shader_image_load_store = _glewSearchExtension("GL_ARB_shader_image_load_store", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store(); #endif /* GL_ARB_shader_image_load_store */ -#ifdef GL_ARB_shader_image_size - GLEW_ARB_shader_image_size = _glewSearchExtension("GL_ARB_shader_image_size", extStart, extEnd); -#endif /* GL_ARB_shader_image_size */ #ifdef GL_ARB_shader_objects - GLEW_ARB_shader_objects = _glewSearchExtension("GL_ARB_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects(); #endif /* GL_ARB_shader_objects */ -#ifdef GL_ARB_shader_precision - GLEW_ARB_shader_precision = _glewSearchExtension("GL_ARB_shader_precision", extStart, extEnd); -#endif /* GL_ARB_shader_precision */ -#ifdef GL_ARB_shader_stencil_export - GLEW_ARB_shader_stencil_export = _glewSearchExtension("GL_ARB_shader_stencil_export", extStart, extEnd); -#endif /* GL_ARB_shader_stencil_export */ #ifdef GL_ARB_shader_storage_buffer_object - GLEW_ARB_shader_storage_buffer_object = _glewSearchExtension("GL_ARB_shader_storage_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object(); #endif /* GL_ARB_shader_storage_buffer_object */ #ifdef GL_ARB_shader_subroutine - GLEW_ARB_shader_subroutine = _glewSearchExtension("GL_ARB_shader_subroutine", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine(); #endif /* GL_ARB_shader_subroutine */ -#ifdef GL_ARB_shader_texture_image_samples - GLEW_ARB_shader_texture_image_samples = _glewSearchExtension("GL_ARB_shader_texture_image_samples", extStart, extEnd); -#endif /* GL_ARB_shader_texture_image_samples */ -#ifdef GL_ARB_shader_texture_lod - GLEW_ARB_shader_texture_lod = _glewSearchExtension("GL_ARB_shader_texture_lod", extStart, extEnd); -#endif /* GL_ARB_shader_texture_lod */ -#ifdef GL_ARB_shader_viewport_layer_array - GLEW_ARB_shader_viewport_layer_array = _glewSearchExtension("GL_ARB_shader_viewport_layer_array", extStart, extEnd); -#endif /* GL_ARB_shader_viewport_layer_array */ -#ifdef GL_ARB_shading_language_100 - GLEW_ARB_shading_language_100 = _glewSearchExtension("GL_ARB_shading_language_100", extStart, extEnd); -#endif /* GL_ARB_shading_language_100 */ -#ifdef GL_ARB_shading_language_420pack - GLEW_ARB_shading_language_420pack = _glewSearchExtension("GL_ARB_shading_language_420pack", extStart, extEnd); -#endif /* GL_ARB_shading_language_420pack */ #ifdef GL_ARB_shading_language_include - GLEW_ARB_shading_language_include = _glewSearchExtension("GL_ARB_shading_language_include", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include(); #endif /* GL_ARB_shading_language_include */ -#ifdef GL_ARB_shading_language_packing - GLEW_ARB_shading_language_packing = _glewSearchExtension("GL_ARB_shading_language_packing", extStart, extEnd); -#endif /* GL_ARB_shading_language_packing */ -#ifdef GL_ARB_shadow - GLEW_ARB_shadow = _glewSearchExtension("GL_ARB_shadow", extStart, extEnd); -#endif /* GL_ARB_shadow */ -#ifdef GL_ARB_shadow_ambient - GLEW_ARB_shadow_ambient = _glewSearchExtension("GL_ARB_shadow_ambient", extStart, extEnd); -#endif /* GL_ARB_shadow_ambient */ #ifdef GL_ARB_sparse_buffer - GLEW_ARB_sparse_buffer = _glewSearchExtension("GL_ARB_sparse_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer(); #endif /* GL_ARB_sparse_buffer */ #ifdef GL_ARB_sparse_texture - GLEW_ARB_sparse_texture = _glewSearchExtension("GL_ARB_sparse_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture(); #endif /* GL_ARB_sparse_texture */ -#ifdef GL_ARB_sparse_texture2 - GLEW_ARB_sparse_texture2 = _glewSearchExtension("GL_ARB_sparse_texture2", extStart, extEnd); -#endif /* GL_ARB_sparse_texture2 */ -#ifdef GL_ARB_sparse_texture_clamp - GLEW_ARB_sparse_texture_clamp = _glewSearchExtension("GL_ARB_sparse_texture_clamp", extStart, extEnd); -#endif /* GL_ARB_sparse_texture_clamp */ -#ifdef GL_ARB_stencil_texturing - GLEW_ARB_stencil_texturing = _glewSearchExtension("GL_ARB_stencil_texturing", extStart, extEnd); -#endif /* GL_ARB_stencil_texturing */ #ifdef GL_ARB_sync - GLEW_ARB_sync = _glewSearchExtension("GL_ARB_sync", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync(); #endif /* GL_ARB_sync */ #ifdef GL_ARB_tessellation_shader - GLEW_ARB_tessellation_shader = _glewSearchExtension("GL_ARB_tessellation_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader(); #endif /* GL_ARB_tessellation_shader */ #ifdef GL_ARB_texture_barrier - GLEW_ARB_texture_barrier = _glewSearchExtension("GL_ARB_texture_barrier", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier(); #endif /* GL_ARB_texture_barrier */ -#ifdef GL_ARB_texture_border_clamp - GLEW_ARB_texture_border_clamp = _glewSearchExtension("GL_ARB_texture_border_clamp", extStart, extEnd); -#endif /* GL_ARB_texture_border_clamp */ #ifdef GL_ARB_texture_buffer_object - GLEW_ARB_texture_buffer_object = _glewSearchExtension("GL_ARB_texture_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object(); #endif /* GL_ARB_texture_buffer_object */ -#ifdef GL_ARB_texture_buffer_object_rgb32 - GLEW_ARB_texture_buffer_object_rgb32 = _glewSearchExtension("GL_ARB_texture_buffer_object_rgb32", extStart, extEnd); -#endif /* GL_ARB_texture_buffer_object_rgb32 */ #ifdef GL_ARB_texture_buffer_range - GLEW_ARB_texture_buffer_range = _glewSearchExtension("GL_ARB_texture_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range(); #endif /* GL_ARB_texture_buffer_range */ #ifdef GL_ARB_texture_compression - GLEW_ARB_texture_compression = _glewSearchExtension("GL_ARB_texture_compression", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression(); #endif /* GL_ARB_texture_compression */ -#ifdef GL_ARB_texture_compression_bptc - GLEW_ARB_texture_compression_bptc = _glewSearchExtension("GL_ARB_texture_compression_bptc", extStart, extEnd); -#endif /* GL_ARB_texture_compression_bptc */ -#ifdef GL_ARB_texture_compression_rgtc - GLEW_ARB_texture_compression_rgtc = _glewSearchExtension("GL_ARB_texture_compression_rgtc", extStart, extEnd); -#endif /* GL_ARB_texture_compression_rgtc */ -#ifdef GL_ARB_texture_cube_map - GLEW_ARB_texture_cube_map = _glewSearchExtension("GL_ARB_texture_cube_map", extStart, extEnd); -#endif /* GL_ARB_texture_cube_map */ -#ifdef GL_ARB_texture_cube_map_array - GLEW_ARB_texture_cube_map_array = _glewSearchExtension("GL_ARB_texture_cube_map_array", extStart, extEnd); -#endif /* GL_ARB_texture_cube_map_array */ -#ifdef GL_ARB_texture_env_add - GLEW_ARB_texture_env_add = _glewSearchExtension("GL_ARB_texture_env_add", extStart, extEnd); -#endif /* GL_ARB_texture_env_add */ -#ifdef GL_ARB_texture_env_combine - GLEW_ARB_texture_env_combine = _glewSearchExtension("GL_ARB_texture_env_combine", extStart, extEnd); -#endif /* GL_ARB_texture_env_combine */ -#ifdef GL_ARB_texture_env_crossbar - GLEW_ARB_texture_env_crossbar = _glewSearchExtension("GL_ARB_texture_env_crossbar", extStart, extEnd); -#endif /* GL_ARB_texture_env_crossbar */ -#ifdef GL_ARB_texture_env_dot3 - GLEW_ARB_texture_env_dot3 = _glewSearchExtension("GL_ARB_texture_env_dot3", extStart, extEnd); -#endif /* GL_ARB_texture_env_dot3 */ -#ifdef GL_ARB_texture_filter_minmax - GLEW_ARB_texture_filter_minmax = _glewSearchExtension("GL_ARB_texture_filter_minmax", extStart, extEnd); -#endif /* GL_ARB_texture_filter_minmax */ -#ifdef GL_ARB_texture_float - GLEW_ARB_texture_float = _glewSearchExtension("GL_ARB_texture_float", extStart, extEnd); -#endif /* GL_ARB_texture_float */ -#ifdef GL_ARB_texture_gather - GLEW_ARB_texture_gather = _glewSearchExtension("GL_ARB_texture_gather", extStart, extEnd); -#endif /* GL_ARB_texture_gather */ -#ifdef GL_ARB_texture_mirror_clamp_to_edge - GLEW_ARB_texture_mirror_clamp_to_edge = _glewSearchExtension("GL_ARB_texture_mirror_clamp_to_edge", extStart, extEnd); -#endif /* GL_ARB_texture_mirror_clamp_to_edge */ -#ifdef GL_ARB_texture_mirrored_repeat - GLEW_ARB_texture_mirrored_repeat = _glewSearchExtension("GL_ARB_texture_mirrored_repeat", extStart, extEnd); -#endif /* GL_ARB_texture_mirrored_repeat */ #ifdef GL_ARB_texture_multisample - GLEW_ARB_texture_multisample = _glewSearchExtension("GL_ARB_texture_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample(); #endif /* GL_ARB_texture_multisample */ -#ifdef GL_ARB_texture_non_power_of_two - GLEW_ARB_texture_non_power_of_two = _glewSearchExtension("GL_ARB_texture_non_power_of_two", extStart, extEnd); -#endif /* GL_ARB_texture_non_power_of_two */ -#ifdef GL_ARB_texture_query_levels - GLEW_ARB_texture_query_levels = _glewSearchExtension("GL_ARB_texture_query_levels", extStart, extEnd); -#endif /* GL_ARB_texture_query_levels */ -#ifdef GL_ARB_texture_query_lod - GLEW_ARB_texture_query_lod = _glewSearchExtension("GL_ARB_texture_query_lod", extStart, extEnd); -#endif /* GL_ARB_texture_query_lod */ -#ifdef GL_ARB_texture_rectangle - GLEW_ARB_texture_rectangle = _glewSearchExtension("GL_ARB_texture_rectangle", extStart, extEnd); -#endif /* GL_ARB_texture_rectangle */ -#ifdef GL_ARB_texture_rg - GLEW_ARB_texture_rg = _glewSearchExtension("GL_ARB_texture_rg", extStart, extEnd); -#endif /* GL_ARB_texture_rg */ -#ifdef GL_ARB_texture_rgb10_a2ui - GLEW_ARB_texture_rgb10_a2ui = _glewSearchExtension("GL_ARB_texture_rgb10_a2ui", extStart, extEnd); -#endif /* GL_ARB_texture_rgb10_a2ui */ -#ifdef GL_ARB_texture_stencil8 - GLEW_ARB_texture_stencil8 = _glewSearchExtension("GL_ARB_texture_stencil8", extStart, extEnd); -#endif /* GL_ARB_texture_stencil8 */ #ifdef GL_ARB_texture_storage - GLEW_ARB_texture_storage = _glewSearchExtension("GL_ARB_texture_storage", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage(); #endif /* GL_ARB_texture_storage */ #ifdef GL_ARB_texture_storage_multisample - GLEW_ARB_texture_storage_multisample = _glewSearchExtension("GL_ARB_texture_storage_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample(); #endif /* GL_ARB_texture_storage_multisample */ -#ifdef GL_ARB_texture_swizzle - GLEW_ARB_texture_swizzle = _glewSearchExtension("GL_ARB_texture_swizzle", extStart, extEnd); -#endif /* GL_ARB_texture_swizzle */ #ifdef GL_ARB_texture_view - GLEW_ARB_texture_view = _glewSearchExtension("GL_ARB_texture_view", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view(); #endif /* GL_ARB_texture_view */ #ifdef GL_ARB_timer_query - GLEW_ARB_timer_query = _glewSearchExtension("GL_ARB_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query(); #endif /* GL_ARB_timer_query */ #ifdef GL_ARB_transform_feedback2 - GLEW_ARB_transform_feedback2 = _glewSearchExtension("GL_ARB_transform_feedback2", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2(); #endif /* GL_ARB_transform_feedback2 */ #ifdef GL_ARB_transform_feedback3 - GLEW_ARB_transform_feedback3 = _glewSearchExtension("GL_ARB_transform_feedback3", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3(); #endif /* GL_ARB_transform_feedback3 */ #ifdef GL_ARB_transform_feedback_instanced - GLEW_ARB_transform_feedback_instanced = _glewSearchExtension("GL_ARB_transform_feedback_instanced", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced(); #endif /* GL_ARB_transform_feedback_instanced */ -#ifdef GL_ARB_transform_feedback_overflow_query - GLEW_ARB_transform_feedback_overflow_query = _glewSearchExtension("GL_ARB_transform_feedback_overflow_query", extStart, extEnd); -#endif /* GL_ARB_transform_feedback_overflow_query */ #ifdef GL_ARB_transpose_matrix - GLEW_ARB_transpose_matrix = _glewSearchExtension("GL_ARB_transpose_matrix", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix(); #endif /* GL_ARB_transpose_matrix */ #ifdef GL_ARB_uniform_buffer_object - GLEW_ARB_uniform_buffer_object = _glewSearchExtension("GL_ARB_uniform_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object(); #endif /* GL_ARB_uniform_buffer_object */ -#ifdef GL_ARB_vertex_array_bgra - GLEW_ARB_vertex_array_bgra = _glewSearchExtension("GL_ARB_vertex_array_bgra", extStart, extEnd); -#endif /* GL_ARB_vertex_array_bgra */ #ifdef GL_ARB_vertex_array_object - GLEW_ARB_vertex_array_object = _glewSearchExtension("GL_ARB_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object(); #endif /* GL_ARB_vertex_array_object */ #ifdef GL_ARB_vertex_attrib_64bit - GLEW_ARB_vertex_attrib_64bit = _glewSearchExtension("GL_ARB_vertex_attrib_64bit", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit(); #endif /* GL_ARB_vertex_attrib_64bit */ #ifdef GL_ARB_vertex_attrib_binding - GLEW_ARB_vertex_attrib_binding = _glewSearchExtension("GL_ARB_vertex_attrib_binding", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding(); #endif /* GL_ARB_vertex_attrib_binding */ #ifdef GL_ARB_vertex_blend - GLEW_ARB_vertex_blend = _glewSearchExtension("GL_ARB_vertex_blend", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend(); #endif /* GL_ARB_vertex_blend */ #ifdef GL_ARB_vertex_buffer_object - GLEW_ARB_vertex_buffer_object = _glewSearchExtension("GL_ARB_vertex_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object(); #endif /* GL_ARB_vertex_buffer_object */ #ifdef GL_ARB_vertex_program - GLEW_ARB_vertex_program = _glewSearchExtension("GL_ARB_vertex_program", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program(); #endif /* GL_ARB_vertex_program */ #ifdef GL_ARB_vertex_shader - GLEW_ARB_vertex_shader = _glewSearchExtension("GL_ARB_vertex_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); } + if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); } #endif /* GL_ARB_vertex_shader */ -#ifdef GL_ARB_vertex_type_10f_11f_11f_rev - GLEW_ARB_vertex_type_10f_11f_11f_rev = _glewSearchExtension("GL_ARB_vertex_type_10f_11f_11f_rev", extStart, extEnd); -#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ #ifdef GL_ARB_vertex_type_2_10_10_10_rev - GLEW_ARB_vertex_type_2_10_10_10_rev = _glewSearchExtension("GL_ARB_vertex_type_2_10_10_10_rev", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev(); #endif /* GL_ARB_vertex_type_2_10_10_10_rev */ #ifdef GL_ARB_viewport_array - GLEW_ARB_viewport_array = _glewSearchExtension("GL_ARB_viewport_array", extStart, extEnd); - if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array(); #endif /* GL_ARB_viewport_array */ #ifdef GL_ARB_window_pos - GLEW_ARB_window_pos = _glewSearchExtension("GL_ARB_window_pos", extStart, extEnd); - if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos(); #endif /* GL_ARB_window_pos */ -#ifdef GL_ATIX_point_sprites - GLEW_ATIX_point_sprites = _glewSearchExtension("GL_ATIX_point_sprites", extStart, extEnd); -#endif /* GL_ATIX_point_sprites */ -#ifdef GL_ATIX_texture_env_combine3 - GLEW_ATIX_texture_env_combine3 = _glewSearchExtension("GL_ATIX_texture_env_combine3", extStart, extEnd); -#endif /* GL_ATIX_texture_env_combine3 */ -#ifdef GL_ATIX_texture_env_route - GLEW_ATIX_texture_env_route = _glewSearchExtension("GL_ATIX_texture_env_route", extStart, extEnd); -#endif /* GL_ATIX_texture_env_route */ -#ifdef GL_ATIX_vertex_shader_output_point_size - GLEW_ATIX_vertex_shader_output_point_size = _glewSearchExtension("GL_ATIX_vertex_shader_output_point_size", extStart, extEnd); -#endif /* GL_ATIX_vertex_shader_output_point_size */ #ifdef GL_ATI_draw_buffers - GLEW_ATI_draw_buffers = _glewSearchExtension("GL_ATI_draw_buffers", extStart, extEnd); - if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers(); #endif /* GL_ATI_draw_buffers */ #ifdef GL_ATI_element_array - GLEW_ATI_element_array = _glewSearchExtension("GL_ATI_element_array", extStart, extEnd); - if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array(); #endif /* GL_ATI_element_array */ #ifdef GL_ATI_envmap_bumpmap - GLEW_ATI_envmap_bumpmap = _glewSearchExtension("GL_ATI_envmap_bumpmap", extStart, extEnd); - if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap(); #endif /* GL_ATI_envmap_bumpmap */ #ifdef GL_ATI_fragment_shader - GLEW_ATI_fragment_shader = _glewSearchExtension("GL_ATI_fragment_shader", extStart, extEnd); - if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader(); #endif /* GL_ATI_fragment_shader */ #ifdef GL_ATI_map_object_buffer - GLEW_ATI_map_object_buffer = _glewSearchExtension("GL_ATI_map_object_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer(); #endif /* GL_ATI_map_object_buffer */ -#ifdef GL_ATI_meminfo - GLEW_ATI_meminfo = _glewSearchExtension("GL_ATI_meminfo", extStart, extEnd); -#endif /* GL_ATI_meminfo */ #ifdef GL_ATI_pn_triangles - GLEW_ATI_pn_triangles = _glewSearchExtension("GL_ATI_pn_triangles", extStart, extEnd); - if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles(); #endif /* GL_ATI_pn_triangles */ #ifdef GL_ATI_separate_stencil - GLEW_ATI_separate_stencil = _glewSearchExtension("GL_ATI_separate_stencil", extStart, extEnd); - if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil(); #endif /* GL_ATI_separate_stencil */ -#ifdef GL_ATI_shader_texture_lod - GLEW_ATI_shader_texture_lod = _glewSearchExtension("GL_ATI_shader_texture_lod", extStart, extEnd); -#endif /* GL_ATI_shader_texture_lod */ -#ifdef GL_ATI_text_fragment_shader - GLEW_ATI_text_fragment_shader = _glewSearchExtension("GL_ATI_text_fragment_shader", extStart, extEnd); -#endif /* GL_ATI_text_fragment_shader */ -#ifdef GL_ATI_texture_compression_3dc - GLEW_ATI_texture_compression_3dc = _glewSearchExtension("GL_ATI_texture_compression_3dc", extStart, extEnd); -#endif /* GL_ATI_texture_compression_3dc */ -#ifdef GL_ATI_texture_env_combine3 - GLEW_ATI_texture_env_combine3 = _glewSearchExtension("GL_ATI_texture_env_combine3", extStart, extEnd); -#endif /* GL_ATI_texture_env_combine3 */ -#ifdef GL_ATI_texture_float - GLEW_ATI_texture_float = _glewSearchExtension("GL_ATI_texture_float", extStart, extEnd); -#endif /* GL_ATI_texture_float */ -#ifdef GL_ATI_texture_mirror_once - GLEW_ATI_texture_mirror_once = _glewSearchExtension("GL_ATI_texture_mirror_once", extStart, extEnd); -#endif /* GL_ATI_texture_mirror_once */ #ifdef GL_ATI_vertex_array_object - GLEW_ATI_vertex_array_object = _glewSearchExtension("GL_ATI_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object(); #endif /* GL_ATI_vertex_array_object */ #ifdef GL_ATI_vertex_attrib_array_object - GLEW_ATI_vertex_attrib_array_object = _glewSearchExtension("GL_ATI_vertex_attrib_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object(); #endif /* GL_ATI_vertex_attrib_array_object */ #ifdef GL_ATI_vertex_streams - GLEW_ATI_vertex_streams = _glewSearchExtension("GL_ATI_vertex_streams", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams(); #endif /* GL_ATI_vertex_streams */ -#ifdef GL_EXT_422_pixels - GLEW_EXT_422_pixels = _glewSearchExtension("GL_EXT_422_pixels", extStart, extEnd); -#endif /* GL_EXT_422_pixels */ -#ifdef GL_EXT_Cg_shader - GLEW_EXT_Cg_shader = _glewSearchExtension("GL_EXT_Cg_shader", extStart, extEnd); -#endif /* GL_EXT_Cg_shader */ -#ifdef GL_EXT_abgr - GLEW_EXT_abgr = _glewSearchExtension("GL_EXT_abgr", extStart, extEnd); -#endif /* GL_EXT_abgr */ -#ifdef GL_EXT_bgra - GLEW_EXT_bgra = _glewSearchExtension("GL_EXT_bgra", extStart, extEnd); -#endif /* GL_EXT_bgra */ +#ifdef GL_EXT_EGL_image_storage + if (glewExperimental || GLEW_EXT_EGL_image_storage) GLEW_EXT_EGL_image_storage = !_glewInit_GL_EXT_EGL_image_storage(); +#endif /* GL_EXT_EGL_image_storage */ +#ifdef GL_EXT_base_instance + if (glewExperimental || GLEW_EXT_base_instance) GLEW_EXT_base_instance = !_glewInit_GL_EXT_base_instance(); +#endif /* GL_EXT_base_instance */ #ifdef GL_EXT_bindable_uniform - GLEW_EXT_bindable_uniform = _glewSearchExtension("GL_EXT_bindable_uniform", extStart, extEnd); - if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform(); #endif /* GL_EXT_bindable_uniform */ #ifdef GL_EXT_blend_color - GLEW_EXT_blend_color = _glewSearchExtension("GL_EXT_blend_color", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color(); #endif /* GL_EXT_blend_color */ #ifdef GL_EXT_blend_equation_separate - GLEW_EXT_blend_equation_separate = _glewSearchExtension("GL_EXT_blend_equation_separate", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate(); #endif /* GL_EXT_blend_equation_separate */ +#ifdef GL_EXT_blend_func_extended + if (glewExperimental || GLEW_EXT_blend_func_extended) GLEW_EXT_blend_func_extended = !_glewInit_GL_EXT_blend_func_extended(); +#endif /* GL_EXT_blend_func_extended */ #ifdef GL_EXT_blend_func_separate - GLEW_EXT_blend_func_separate = _glewSearchExtension("GL_EXT_blend_func_separate", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate(); #endif /* GL_EXT_blend_func_separate */ -#ifdef GL_EXT_blend_logic_op - GLEW_EXT_blend_logic_op = _glewSearchExtension("GL_EXT_blend_logic_op", extStart, extEnd); -#endif /* GL_EXT_blend_logic_op */ #ifdef GL_EXT_blend_minmax - GLEW_EXT_blend_minmax = _glewSearchExtension("GL_EXT_blend_minmax", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax(); #endif /* GL_EXT_blend_minmax */ -#ifdef GL_EXT_blend_subtract - GLEW_EXT_blend_subtract = _glewSearchExtension("GL_EXT_blend_subtract", extStart, extEnd); -#endif /* GL_EXT_blend_subtract */ -#ifdef GL_EXT_clip_volume_hint - GLEW_EXT_clip_volume_hint = _glewSearchExtension("GL_EXT_clip_volume_hint", extStart, extEnd); -#endif /* GL_EXT_clip_volume_hint */ -#ifdef GL_EXT_cmyka - GLEW_EXT_cmyka = _glewSearchExtension("GL_EXT_cmyka", extStart, extEnd); -#endif /* GL_EXT_cmyka */ +#ifdef GL_EXT_buffer_storage + if (glewExperimental || GLEW_EXT_buffer_storage) GLEW_EXT_buffer_storage = !_glewInit_GL_EXT_buffer_storage(); +#endif /* GL_EXT_buffer_storage */ +#ifdef GL_EXT_clear_texture + if (glewExperimental || GLEW_EXT_clear_texture) GLEW_EXT_clear_texture = !_glewInit_GL_EXT_clear_texture(); +#endif /* GL_EXT_clear_texture */ +#ifdef GL_EXT_clip_control + if (glewExperimental || GLEW_EXT_clip_control) GLEW_EXT_clip_control = !_glewInit_GL_EXT_clip_control(); +#endif /* GL_EXT_clip_control */ #ifdef GL_EXT_color_subtable - GLEW_EXT_color_subtable = _glewSearchExtension("GL_EXT_color_subtable", extStart, extEnd); - if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable(); #endif /* GL_EXT_color_subtable */ #ifdef GL_EXT_compiled_vertex_array - GLEW_EXT_compiled_vertex_array = _glewSearchExtension("GL_EXT_compiled_vertex_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array(); #endif /* GL_EXT_compiled_vertex_array */ #ifdef GL_EXT_convolution - GLEW_EXT_convolution = _glewSearchExtension("GL_EXT_convolution", extStart, extEnd); - if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution(); #endif /* GL_EXT_convolution */ #ifdef GL_EXT_coordinate_frame - GLEW_EXT_coordinate_frame = _glewSearchExtension("GL_EXT_coordinate_frame", extStart, extEnd); - if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame(); #endif /* GL_EXT_coordinate_frame */ +#ifdef GL_EXT_copy_image + if (glewExperimental || GLEW_EXT_copy_image) GLEW_EXT_copy_image = !_glewInit_GL_EXT_copy_image(); +#endif /* GL_EXT_copy_image */ #ifdef GL_EXT_copy_texture - GLEW_EXT_copy_texture = _glewSearchExtension("GL_EXT_copy_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture(); #endif /* GL_EXT_copy_texture */ #ifdef GL_EXT_cull_vertex - GLEW_EXT_cull_vertex = _glewSearchExtension("GL_EXT_cull_vertex", extStart, extEnd); - if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex(); #endif /* GL_EXT_cull_vertex */ #ifdef GL_EXT_debug_label - GLEW_EXT_debug_label = _glewSearchExtension("GL_EXT_debug_label", extStart, extEnd); - if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label(); #endif /* GL_EXT_debug_label */ #ifdef GL_EXT_debug_marker - GLEW_EXT_debug_marker = _glewSearchExtension("GL_EXT_debug_marker", extStart, extEnd); - if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker(); #endif /* GL_EXT_debug_marker */ #ifdef GL_EXT_depth_bounds_test - GLEW_EXT_depth_bounds_test = _glewSearchExtension("GL_EXT_depth_bounds_test", extStart, extEnd); - if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test(); #endif /* GL_EXT_depth_bounds_test */ #ifdef GL_EXT_direct_state_access - GLEW_EXT_direct_state_access = _glewSearchExtension("GL_EXT_direct_state_access", extStart, extEnd); - if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access(); #endif /* GL_EXT_direct_state_access */ +#ifdef GL_EXT_discard_framebuffer + if (glewExperimental || GLEW_EXT_discard_framebuffer) GLEW_EXT_discard_framebuffer = !_glewInit_GL_EXT_discard_framebuffer(); +#endif /* GL_EXT_discard_framebuffer */ +#ifdef GL_EXT_disjoint_timer_query + if (glewExperimental || GLEW_EXT_disjoint_timer_query) GLEW_EXT_disjoint_timer_query = !_glewInit_GL_EXT_disjoint_timer_query(); +#endif /* GL_EXT_disjoint_timer_query */ +#ifdef GL_EXT_draw_buffers + if (glewExperimental || GLEW_EXT_draw_buffers) GLEW_EXT_draw_buffers = !_glewInit_GL_EXT_draw_buffers(); +#endif /* GL_EXT_draw_buffers */ #ifdef GL_EXT_draw_buffers2 - GLEW_EXT_draw_buffers2 = _glewSearchExtension("GL_EXT_draw_buffers2", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2(); #endif /* GL_EXT_draw_buffers2 */ +#ifdef GL_EXT_draw_buffers_indexed + if (glewExperimental || GLEW_EXT_draw_buffers_indexed) GLEW_EXT_draw_buffers_indexed = !_glewInit_GL_EXT_draw_buffers_indexed(); +#endif /* GL_EXT_draw_buffers_indexed */ +#ifdef GL_EXT_draw_elements_base_vertex + if (glewExperimental || GLEW_EXT_draw_elements_base_vertex) GLEW_EXT_draw_elements_base_vertex = !_glewInit_GL_EXT_draw_elements_base_vertex(); +#endif /* GL_EXT_draw_elements_base_vertex */ #ifdef GL_EXT_draw_instanced - GLEW_EXT_draw_instanced = _glewSearchExtension("GL_EXT_draw_instanced", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced(); #endif /* GL_EXT_draw_instanced */ #ifdef GL_EXT_draw_range_elements - GLEW_EXT_draw_range_elements = _glewSearchExtension("GL_EXT_draw_range_elements", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements(); #endif /* GL_EXT_draw_range_elements */ +#ifdef GL_EXT_draw_transform_feedback + if (glewExperimental || GLEW_EXT_draw_transform_feedback) GLEW_EXT_draw_transform_feedback = !_glewInit_GL_EXT_draw_transform_feedback(); +#endif /* GL_EXT_draw_transform_feedback */ +#ifdef GL_EXT_external_buffer + if (glewExperimental || GLEW_EXT_external_buffer) GLEW_EXT_external_buffer = !_glewInit_GL_EXT_external_buffer(); +#endif /* GL_EXT_external_buffer */ #ifdef GL_EXT_fog_coord - GLEW_EXT_fog_coord = _glewSearchExtension("GL_EXT_fog_coord", extStart, extEnd); - if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord(); #endif /* GL_EXT_fog_coord */ #ifdef GL_EXT_fragment_lighting - GLEW_EXT_fragment_lighting = _glewSearchExtension("GL_EXT_fragment_lighting", extStart, extEnd); - if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting(); #endif /* GL_EXT_fragment_lighting */ #ifdef GL_EXT_framebuffer_blit - GLEW_EXT_framebuffer_blit = _glewSearchExtension("GL_EXT_framebuffer_blit", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit(); #endif /* GL_EXT_framebuffer_blit */ #ifdef GL_EXT_framebuffer_multisample - GLEW_EXT_framebuffer_multisample = _glewSearchExtension("GL_EXT_framebuffer_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample(); #endif /* GL_EXT_framebuffer_multisample */ -#ifdef GL_EXT_framebuffer_multisample_blit_scaled - GLEW_EXT_framebuffer_multisample_blit_scaled = _glewSearchExtension("GL_EXT_framebuffer_multisample_blit_scaled", extStart, extEnd); -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ #ifdef GL_EXT_framebuffer_object - GLEW_EXT_framebuffer_object = _glewSearchExtension("GL_EXT_framebuffer_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object(); #endif /* GL_EXT_framebuffer_object */ -#ifdef GL_EXT_framebuffer_sRGB - GLEW_EXT_framebuffer_sRGB = _glewSearchExtension("GL_EXT_framebuffer_sRGB", extStart, extEnd); -#endif /* GL_EXT_framebuffer_sRGB */ #ifdef GL_EXT_geometry_shader4 - GLEW_EXT_geometry_shader4 = _glewSearchExtension("GL_EXT_geometry_shader4", extStart, extEnd); - if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4(); #endif /* GL_EXT_geometry_shader4 */ #ifdef GL_EXT_gpu_program_parameters - GLEW_EXT_gpu_program_parameters = _glewSearchExtension("GL_EXT_gpu_program_parameters", extStart, extEnd); - if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters(); #endif /* GL_EXT_gpu_program_parameters */ #ifdef GL_EXT_gpu_shader4 - GLEW_EXT_gpu_shader4 = _glewSearchExtension("GL_EXT_gpu_shader4", extStart, extEnd); - if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4(); #endif /* GL_EXT_gpu_shader4 */ #ifdef GL_EXT_histogram - GLEW_EXT_histogram = _glewSearchExtension("GL_EXT_histogram", extStart, extEnd); - if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram(); #endif /* GL_EXT_histogram */ -#ifdef GL_EXT_index_array_formats - GLEW_EXT_index_array_formats = _glewSearchExtension("GL_EXT_index_array_formats", extStart, extEnd); -#endif /* GL_EXT_index_array_formats */ #ifdef GL_EXT_index_func - GLEW_EXT_index_func = _glewSearchExtension("GL_EXT_index_func", extStart, extEnd); - if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func(); #endif /* GL_EXT_index_func */ #ifdef GL_EXT_index_material - GLEW_EXT_index_material = _glewSearchExtension("GL_EXT_index_material", extStart, extEnd); - if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material(); #endif /* GL_EXT_index_material */ -#ifdef GL_EXT_index_texture - GLEW_EXT_index_texture = _glewSearchExtension("GL_EXT_index_texture", extStart, extEnd); -#endif /* GL_EXT_index_texture */ +#ifdef GL_EXT_instanced_arrays + if (glewExperimental || GLEW_EXT_instanced_arrays) GLEW_EXT_instanced_arrays = !_glewInit_GL_EXT_instanced_arrays(); +#endif /* GL_EXT_instanced_arrays */ #ifdef GL_EXT_light_texture - GLEW_EXT_light_texture = _glewSearchExtension("GL_EXT_light_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture(); #endif /* GL_EXT_light_texture */ -#ifdef GL_EXT_misc_attribute - GLEW_EXT_misc_attribute = _glewSearchExtension("GL_EXT_misc_attribute", extStart, extEnd); -#endif /* GL_EXT_misc_attribute */ +#ifdef GL_EXT_map_buffer_range + if (glewExperimental || GLEW_EXT_map_buffer_range) GLEW_EXT_map_buffer_range = !_glewInit_GL_EXT_map_buffer_range(); +#endif /* GL_EXT_map_buffer_range */ +#ifdef GL_EXT_memory_object + if (glewExperimental || GLEW_EXT_memory_object) GLEW_EXT_memory_object = !_glewInit_GL_EXT_memory_object(); +#endif /* GL_EXT_memory_object */ +#ifdef GL_EXT_memory_object_fd + if (glewExperimental || GLEW_EXT_memory_object_fd) GLEW_EXT_memory_object_fd = !_glewInit_GL_EXT_memory_object_fd(); +#endif /* GL_EXT_memory_object_fd */ +#ifdef GL_EXT_memory_object_win32 + if (glewExperimental || GLEW_EXT_memory_object_win32) GLEW_EXT_memory_object_win32 = !_glewInit_GL_EXT_memory_object_win32(); +#endif /* GL_EXT_memory_object_win32 */ #ifdef GL_EXT_multi_draw_arrays - GLEW_EXT_multi_draw_arrays = _glewSearchExtension("GL_EXT_multi_draw_arrays", extStart, extEnd); - if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays(); #endif /* GL_EXT_multi_draw_arrays */ +#ifdef GL_EXT_multi_draw_indirect + if (glewExperimental || GLEW_EXT_multi_draw_indirect) GLEW_EXT_multi_draw_indirect = !_glewInit_GL_EXT_multi_draw_indirect(); +#endif /* GL_EXT_multi_draw_indirect */ #ifdef GL_EXT_multisample - GLEW_EXT_multisample = _glewSearchExtension("GL_EXT_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample(); #endif /* GL_EXT_multisample */ -#ifdef GL_EXT_packed_depth_stencil - GLEW_EXT_packed_depth_stencil = _glewSearchExtension("GL_EXT_packed_depth_stencil", extStart, extEnd); -#endif /* GL_EXT_packed_depth_stencil */ -#ifdef GL_EXT_packed_float - GLEW_EXT_packed_float = _glewSearchExtension("GL_EXT_packed_float", extStart, extEnd); -#endif /* GL_EXT_packed_float */ -#ifdef GL_EXT_packed_pixels - GLEW_EXT_packed_pixels = _glewSearchExtension("GL_EXT_packed_pixels", extStart, extEnd); -#endif /* GL_EXT_packed_pixels */ +#ifdef GL_EXT_multisampled_render_to_texture + if (glewExperimental || GLEW_EXT_multisampled_render_to_texture) GLEW_EXT_multisampled_render_to_texture = !_glewInit_GL_EXT_multisampled_render_to_texture(); +#endif /* GL_EXT_multisampled_render_to_texture */ +#ifdef GL_EXT_multiview_draw_buffers + if (glewExperimental || GLEW_EXT_multiview_draw_buffers) GLEW_EXT_multiview_draw_buffers = !_glewInit_GL_EXT_multiview_draw_buffers(); +#endif /* GL_EXT_multiview_draw_buffers */ #ifdef GL_EXT_paletted_texture - GLEW_EXT_paletted_texture = _glewSearchExtension("GL_EXT_paletted_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture(); #endif /* GL_EXT_paletted_texture */ -#ifdef GL_EXT_pixel_buffer_object - GLEW_EXT_pixel_buffer_object = _glewSearchExtension("GL_EXT_pixel_buffer_object", extStart, extEnd); -#endif /* GL_EXT_pixel_buffer_object */ #ifdef GL_EXT_pixel_transform - GLEW_EXT_pixel_transform = _glewSearchExtension("GL_EXT_pixel_transform", extStart, extEnd); - if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform(); #endif /* GL_EXT_pixel_transform */ -#ifdef GL_EXT_pixel_transform_color_table - GLEW_EXT_pixel_transform_color_table = _glewSearchExtension("GL_EXT_pixel_transform_color_table", extStart, extEnd); -#endif /* GL_EXT_pixel_transform_color_table */ #ifdef GL_EXT_point_parameters - GLEW_EXT_point_parameters = _glewSearchExtension("GL_EXT_point_parameters", extStart, extEnd); - if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters(); #endif /* GL_EXT_point_parameters */ #ifdef GL_EXT_polygon_offset - GLEW_EXT_polygon_offset = _glewSearchExtension("GL_EXT_polygon_offset", extStart, extEnd); - if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset(); #endif /* GL_EXT_polygon_offset */ #ifdef GL_EXT_polygon_offset_clamp - GLEW_EXT_polygon_offset_clamp = _glewSearchExtension("GL_EXT_polygon_offset_clamp", extStart, extEnd); - if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp(); #endif /* GL_EXT_polygon_offset_clamp */ -#ifdef GL_EXT_post_depth_coverage - GLEW_EXT_post_depth_coverage = _glewSearchExtension("GL_EXT_post_depth_coverage", extStart, extEnd); -#endif /* GL_EXT_post_depth_coverage */ +#ifdef GL_EXT_primitive_bounding_box + if (glewExperimental || GLEW_EXT_primitive_bounding_box) GLEW_EXT_primitive_bounding_box = !_glewInit_GL_EXT_primitive_bounding_box(); +#endif /* GL_EXT_primitive_bounding_box */ #ifdef GL_EXT_provoking_vertex - GLEW_EXT_provoking_vertex = _glewSearchExtension("GL_EXT_provoking_vertex", extStart, extEnd); - if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex(); #endif /* GL_EXT_provoking_vertex */ #ifdef GL_EXT_raster_multisample - GLEW_EXT_raster_multisample = _glewSearchExtension("GL_EXT_raster_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample(); #endif /* GL_EXT_raster_multisample */ -#ifdef GL_EXT_rescale_normal - GLEW_EXT_rescale_normal = _glewSearchExtension("GL_EXT_rescale_normal", extStart, extEnd); -#endif /* GL_EXT_rescale_normal */ +#ifdef GL_EXT_robustness + if (glewExperimental || GLEW_EXT_robustness) GLEW_EXT_robustness = !_glewInit_GL_EXT_robustness(); +#endif /* GL_EXT_robustness */ #ifdef GL_EXT_scene_marker - GLEW_EXT_scene_marker = _glewSearchExtension("GL_EXT_scene_marker", extStart, extEnd); - if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker(); #endif /* GL_EXT_scene_marker */ #ifdef GL_EXT_secondary_color - GLEW_EXT_secondary_color = _glewSearchExtension("GL_EXT_secondary_color", extStart, extEnd); - if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color(); #endif /* GL_EXT_secondary_color */ +#ifdef GL_EXT_semaphore + if (glewExperimental || GLEW_EXT_semaphore) GLEW_EXT_semaphore = !_glewInit_GL_EXT_semaphore(); +#endif /* GL_EXT_semaphore */ +#ifdef GL_EXT_semaphore_fd + if (glewExperimental || GLEW_EXT_semaphore_fd) GLEW_EXT_semaphore_fd = !_glewInit_GL_EXT_semaphore_fd(); +#endif /* GL_EXT_semaphore_fd */ +#ifdef GL_EXT_semaphore_win32 + if (glewExperimental || GLEW_EXT_semaphore_win32) GLEW_EXT_semaphore_win32 = !_glewInit_GL_EXT_semaphore_win32(); +#endif /* GL_EXT_semaphore_win32 */ #ifdef GL_EXT_separate_shader_objects - GLEW_EXT_separate_shader_objects = _glewSearchExtension("GL_EXT_separate_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects(); #endif /* GL_EXT_separate_shader_objects */ -#ifdef GL_EXT_separate_specular_color - GLEW_EXT_separate_specular_color = _glewSearchExtension("GL_EXT_separate_specular_color", extStart, extEnd); -#endif /* GL_EXT_separate_specular_color */ -#ifdef GL_EXT_shader_image_load_formatted - GLEW_EXT_shader_image_load_formatted = _glewSearchExtension("GL_EXT_shader_image_load_formatted", extStart, extEnd); -#endif /* GL_EXT_shader_image_load_formatted */ +#ifdef GL_EXT_shader_framebuffer_fetch + if (glewExperimental || GLEW_EXT_shader_framebuffer_fetch) GLEW_EXT_shader_framebuffer_fetch = !_glewInit_GL_EXT_shader_framebuffer_fetch(); +#endif /* GL_EXT_shader_framebuffer_fetch */ #ifdef GL_EXT_shader_image_load_store - GLEW_EXT_shader_image_load_store = _glewSearchExtension("GL_EXT_shader_image_load_store", extStart, extEnd); - if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store(); #endif /* GL_EXT_shader_image_load_store */ -#ifdef GL_EXT_shader_integer_mix - GLEW_EXT_shader_integer_mix = _glewSearchExtension("GL_EXT_shader_integer_mix", extStart, extEnd); -#endif /* GL_EXT_shader_integer_mix */ -#ifdef GL_EXT_shadow_funcs - GLEW_EXT_shadow_funcs = _glewSearchExtension("GL_EXT_shadow_funcs", extStart, extEnd); -#endif /* GL_EXT_shadow_funcs */ -#ifdef GL_EXT_shared_texture_palette - GLEW_EXT_shared_texture_palette = _glewSearchExtension("GL_EXT_shared_texture_palette", extStart, extEnd); -#endif /* GL_EXT_shared_texture_palette */ -#ifdef GL_EXT_sparse_texture2 - GLEW_EXT_sparse_texture2 = _glewSearchExtension("GL_EXT_sparse_texture2", extStart, extEnd); -#endif /* GL_EXT_sparse_texture2 */ -#ifdef GL_EXT_stencil_clear_tag - GLEW_EXT_stencil_clear_tag = _glewSearchExtension("GL_EXT_stencil_clear_tag", extStart, extEnd); -#endif /* GL_EXT_stencil_clear_tag */ +#ifdef GL_EXT_shader_pixel_local_storage2 + if (glewExperimental || GLEW_EXT_shader_pixel_local_storage2) GLEW_EXT_shader_pixel_local_storage2 = !_glewInit_GL_EXT_shader_pixel_local_storage2(); +#endif /* GL_EXT_shader_pixel_local_storage2 */ +#ifdef GL_EXT_sparse_texture + if (glewExperimental || GLEW_EXT_sparse_texture) GLEW_EXT_sparse_texture = !_glewInit_GL_EXT_sparse_texture(); +#endif /* GL_EXT_sparse_texture */ #ifdef GL_EXT_stencil_two_side - GLEW_EXT_stencil_two_side = _glewSearchExtension("GL_EXT_stencil_two_side", extStart, extEnd); - if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side(); #endif /* GL_EXT_stencil_two_side */ -#ifdef GL_EXT_stencil_wrap - GLEW_EXT_stencil_wrap = _glewSearchExtension("GL_EXT_stencil_wrap", extStart, extEnd); -#endif /* GL_EXT_stencil_wrap */ #ifdef GL_EXT_subtexture - GLEW_EXT_subtexture = _glewSearchExtension("GL_EXT_subtexture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture(); #endif /* GL_EXT_subtexture */ -#ifdef GL_EXT_texture - GLEW_EXT_texture = _glewSearchExtension("GL_EXT_texture", extStart, extEnd); -#endif /* GL_EXT_texture */ +#ifdef GL_EXT_tessellation_point_size + if (glewExperimental || GLEW_EXT_tessellation_point_size) GLEW_EXT_tessellation_point_size = !_glewInit_GL_EXT_tessellation_point_size(); +#endif /* GL_EXT_tessellation_point_size */ #ifdef GL_EXT_texture3D - GLEW_EXT_texture3D = _glewSearchExtension("GL_EXT_texture3D", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D(); #endif /* GL_EXT_texture3D */ #ifdef GL_EXT_texture_array - GLEW_EXT_texture_array = _glewSearchExtension("GL_EXT_texture_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array(); #endif /* GL_EXT_texture_array */ +#ifdef GL_EXT_texture_border_clamp + if (glewExperimental || GLEW_EXT_texture_border_clamp) GLEW_EXT_texture_border_clamp = !_glewInit_GL_EXT_texture_border_clamp(); +#endif /* GL_EXT_texture_border_clamp */ #ifdef GL_EXT_texture_buffer_object - GLEW_EXT_texture_buffer_object = _glewSearchExtension("GL_EXT_texture_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object(); #endif /* GL_EXT_texture_buffer_object */ -#ifdef GL_EXT_texture_compression_dxt1 - GLEW_EXT_texture_compression_dxt1 = _glewSearchExtension("GL_EXT_texture_compression_dxt1", extStart, extEnd); -#endif /* GL_EXT_texture_compression_dxt1 */ -#ifdef GL_EXT_texture_compression_latc - GLEW_EXT_texture_compression_latc = _glewSearchExtension("GL_EXT_texture_compression_latc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_latc */ -#ifdef GL_EXT_texture_compression_rgtc - GLEW_EXT_texture_compression_rgtc = _glewSearchExtension("GL_EXT_texture_compression_rgtc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_rgtc */ -#ifdef GL_EXT_texture_compression_s3tc - GLEW_EXT_texture_compression_s3tc = _glewSearchExtension("GL_EXT_texture_compression_s3tc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_s3tc */ -#ifdef GL_EXT_texture_cube_map - GLEW_EXT_texture_cube_map = _glewSearchExtension("GL_EXT_texture_cube_map", extStart, extEnd); -#endif /* GL_EXT_texture_cube_map */ -#ifdef GL_EXT_texture_edge_clamp - GLEW_EXT_texture_edge_clamp = _glewSearchExtension("GL_EXT_texture_edge_clamp", extStart, extEnd); -#endif /* GL_EXT_texture_edge_clamp */ -#ifdef GL_EXT_texture_env - GLEW_EXT_texture_env = _glewSearchExtension("GL_EXT_texture_env", extStart, extEnd); -#endif /* GL_EXT_texture_env */ -#ifdef GL_EXT_texture_env_add - GLEW_EXT_texture_env_add = _glewSearchExtension("GL_EXT_texture_env_add", extStart, extEnd); -#endif /* GL_EXT_texture_env_add */ -#ifdef GL_EXT_texture_env_combine - GLEW_EXT_texture_env_combine = _glewSearchExtension("GL_EXT_texture_env_combine", extStart, extEnd); -#endif /* GL_EXT_texture_env_combine */ -#ifdef GL_EXT_texture_env_dot3 - GLEW_EXT_texture_env_dot3 = _glewSearchExtension("GL_EXT_texture_env_dot3", extStart, extEnd); -#endif /* GL_EXT_texture_env_dot3 */ -#ifdef GL_EXT_texture_filter_anisotropic - GLEW_EXT_texture_filter_anisotropic = _glewSearchExtension("GL_EXT_texture_filter_anisotropic", extStart, extEnd); -#endif /* GL_EXT_texture_filter_anisotropic */ -#ifdef GL_EXT_texture_filter_minmax - GLEW_EXT_texture_filter_minmax = _glewSearchExtension("GL_EXT_texture_filter_minmax", extStart, extEnd); -#endif /* GL_EXT_texture_filter_minmax */ #ifdef GL_EXT_texture_integer - GLEW_EXT_texture_integer = _glewSearchExtension("GL_EXT_texture_integer", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer(); #endif /* GL_EXT_texture_integer */ -#ifdef GL_EXT_texture_lod_bias - GLEW_EXT_texture_lod_bias = _glewSearchExtension("GL_EXT_texture_lod_bias", extStart, extEnd); -#endif /* GL_EXT_texture_lod_bias */ -#ifdef GL_EXT_texture_mirror_clamp - GLEW_EXT_texture_mirror_clamp = _glewSearchExtension("GL_EXT_texture_mirror_clamp", extStart, extEnd); -#endif /* GL_EXT_texture_mirror_clamp */ #ifdef GL_EXT_texture_object - GLEW_EXT_texture_object = _glewSearchExtension("GL_EXT_texture_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object(); #endif /* GL_EXT_texture_object */ #ifdef GL_EXT_texture_perturb_normal - GLEW_EXT_texture_perturb_normal = _glewSearchExtension("GL_EXT_texture_perturb_normal", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal(); #endif /* GL_EXT_texture_perturb_normal */ -#ifdef GL_EXT_texture_rectangle - GLEW_EXT_texture_rectangle = _glewSearchExtension("GL_EXT_texture_rectangle", extStart, extEnd); -#endif /* GL_EXT_texture_rectangle */ -#ifdef GL_EXT_texture_sRGB - GLEW_EXT_texture_sRGB = _glewSearchExtension("GL_EXT_texture_sRGB", extStart, extEnd); -#endif /* GL_EXT_texture_sRGB */ -#ifdef GL_EXT_texture_sRGB_decode - GLEW_EXT_texture_sRGB_decode = _glewSearchExtension("GL_EXT_texture_sRGB_decode", extStart, extEnd); -#endif /* GL_EXT_texture_sRGB_decode */ -#ifdef GL_EXT_texture_shared_exponent - GLEW_EXT_texture_shared_exponent = _glewSearchExtension("GL_EXT_texture_shared_exponent", extStart, extEnd); -#endif /* GL_EXT_texture_shared_exponent */ -#ifdef GL_EXT_texture_snorm - GLEW_EXT_texture_snorm = _glewSearchExtension("GL_EXT_texture_snorm", extStart, extEnd); -#endif /* GL_EXT_texture_snorm */ -#ifdef GL_EXT_texture_swizzle - GLEW_EXT_texture_swizzle = _glewSearchExtension("GL_EXT_texture_swizzle", extStart, extEnd); -#endif /* GL_EXT_texture_swizzle */ +#ifdef GL_EXT_texture_storage + if (glewExperimental || GLEW_EXT_texture_storage) GLEW_EXT_texture_storage = !_glewInit_GL_EXT_texture_storage(); +#endif /* GL_EXT_texture_storage */ +#ifdef GL_EXT_texture_view + if (glewExperimental || GLEW_EXT_texture_view) GLEW_EXT_texture_view = !_glewInit_GL_EXT_texture_view(); +#endif /* GL_EXT_texture_view */ #ifdef GL_EXT_timer_query - GLEW_EXT_timer_query = _glewSearchExtension("GL_EXT_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query(); #endif /* GL_EXT_timer_query */ #ifdef GL_EXT_transform_feedback - GLEW_EXT_transform_feedback = _glewSearchExtension("GL_EXT_transform_feedback", extStart, extEnd); - if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback(); #endif /* GL_EXT_transform_feedback */ #ifdef GL_EXT_vertex_array - GLEW_EXT_vertex_array = _glewSearchExtension("GL_EXT_vertex_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array(); #endif /* GL_EXT_vertex_array */ -#ifdef GL_EXT_vertex_array_bgra - GLEW_EXT_vertex_array_bgra = _glewSearchExtension("GL_EXT_vertex_array_bgra", extStart, extEnd); -#endif /* GL_EXT_vertex_array_bgra */ +#ifdef GL_EXT_vertex_array_setXXX + if (glewExperimental || GLEW_EXT_vertex_array_setXXX) GLEW_EXT_vertex_array_setXXX = !_glewInit_GL_EXT_vertex_array_setXXX(); +#endif /* GL_EXT_vertex_array_setXXX */ #ifdef GL_EXT_vertex_attrib_64bit - GLEW_EXT_vertex_attrib_64bit = _glewSearchExtension("GL_EXT_vertex_attrib_64bit", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit(); #endif /* GL_EXT_vertex_attrib_64bit */ #ifdef GL_EXT_vertex_shader - GLEW_EXT_vertex_shader = _glewSearchExtension("GL_EXT_vertex_shader", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader(); #endif /* GL_EXT_vertex_shader */ #ifdef GL_EXT_vertex_weighting - GLEW_EXT_vertex_weighting = _glewSearchExtension("GL_EXT_vertex_weighting", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting(); #endif /* GL_EXT_vertex_weighting */ +#ifdef GL_EXT_win32_keyed_mutex + if (glewExperimental || GLEW_EXT_win32_keyed_mutex) GLEW_EXT_win32_keyed_mutex = !_glewInit_GL_EXT_win32_keyed_mutex(); +#endif /* GL_EXT_win32_keyed_mutex */ +#ifdef GL_EXT_window_rectangles + if (glewExperimental || GLEW_EXT_window_rectangles) GLEW_EXT_window_rectangles = !_glewInit_GL_EXT_window_rectangles(); +#endif /* GL_EXT_window_rectangles */ #ifdef GL_EXT_x11_sync_object - GLEW_EXT_x11_sync_object = _glewSearchExtension("GL_EXT_x11_sync_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object(); #endif /* GL_EXT_x11_sync_object */ #ifdef GL_GREMEDY_frame_terminator - GLEW_GREMEDY_frame_terminator = _glewSearchExtension("GL_GREMEDY_frame_terminator", extStart, extEnd); - if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator(); #endif /* GL_GREMEDY_frame_terminator */ #ifdef GL_GREMEDY_string_marker - GLEW_GREMEDY_string_marker = _glewSearchExtension("GL_GREMEDY_string_marker", extStart, extEnd); - if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker(); #endif /* GL_GREMEDY_string_marker */ -#ifdef GL_HP_convolution_border_modes - GLEW_HP_convolution_border_modes = _glewSearchExtension("GL_HP_convolution_border_modes", extStart, extEnd); -#endif /* GL_HP_convolution_border_modes */ #ifdef GL_HP_image_transform - GLEW_HP_image_transform = _glewSearchExtension("GL_HP_image_transform", extStart, extEnd); - if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform(); #endif /* GL_HP_image_transform */ -#ifdef GL_HP_occlusion_test - GLEW_HP_occlusion_test = _glewSearchExtension("GL_HP_occlusion_test", extStart, extEnd); -#endif /* GL_HP_occlusion_test */ -#ifdef GL_HP_texture_lighting - GLEW_HP_texture_lighting = _glewSearchExtension("GL_HP_texture_lighting", extStart, extEnd); -#endif /* GL_HP_texture_lighting */ -#ifdef GL_IBM_cull_vertex - GLEW_IBM_cull_vertex = _glewSearchExtension("GL_IBM_cull_vertex", extStart, extEnd); -#endif /* GL_IBM_cull_vertex */ #ifdef GL_IBM_multimode_draw_arrays - GLEW_IBM_multimode_draw_arrays = _glewSearchExtension("GL_IBM_multimode_draw_arrays", extStart, extEnd); - if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays(); #endif /* GL_IBM_multimode_draw_arrays */ -#ifdef GL_IBM_rasterpos_clip - GLEW_IBM_rasterpos_clip = _glewSearchExtension("GL_IBM_rasterpos_clip", extStart, extEnd); -#endif /* GL_IBM_rasterpos_clip */ -#ifdef GL_IBM_static_data - GLEW_IBM_static_data = _glewSearchExtension("GL_IBM_static_data", extStart, extEnd); -#endif /* GL_IBM_static_data */ -#ifdef GL_IBM_texture_mirrored_repeat - GLEW_IBM_texture_mirrored_repeat = _glewSearchExtension("GL_IBM_texture_mirrored_repeat", extStart, extEnd); -#endif /* GL_IBM_texture_mirrored_repeat */ #ifdef GL_IBM_vertex_array_lists - GLEW_IBM_vertex_array_lists = _glewSearchExtension("GL_IBM_vertex_array_lists", extStart, extEnd); - if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists(); #endif /* GL_IBM_vertex_array_lists */ -#ifdef GL_INGR_color_clamp - GLEW_INGR_color_clamp = _glewSearchExtension("GL_INGR_color_clamp", extStart, extEnd); -#endif /* GL_INGR_color_clamp */ -#ifdef GL_INGR_interlace_read - GLEW_INGR_interlace_read = _glewSearchExtension("GL_INGR_interlace_read", extStart, extEnd); -#endif /* GL_INGR_interlace_read */ -#ifdef GL_INTEL_fragment_shader_ordering - GLEW_INTEL_fragment_shader_ordering = _glewSearchExtension("GL_INTEL_fragment_shader_ordering", extStart, extEnd); -#endif /* GL_INTEL_fragment_shader_ordering */ -#ifdef GL_INTEL_framebuffer_CMAA - GLEW_INTEL_framebuffer_CMAA = _glewSearchExtension("GL_INTEL_framebuffer_CMAA", extStart, extEnd); -#endif /* GL_INTEL_framebuffer_CMAA */ +#ifdef GL_IMG_bindless_texture + if (glewExperimental || GLEW_IMG_bindless_texture) GLEW_IMG_bindless_texture = !_glewInit_GL_IMG_bindless_texture(); +#endif /* GL_IMG_bindless_texture */ +#ifdef GL_IMG_framebuffer_downsample + if (glewExperimental || GLEW_IMG_framebuffer_downsample) GLEW_IMG_framebuffer_downsample = !_glewInit_GL_IMG_framebuffer_downsample(); +#endif /* GL_IMG_framebuffer_downsample */ +#ifdef GL_IMG_multisampled_render_to_texture + if (glewExperimental || GLEW_IMG_multisampled_render_to_texture) GLEW_IMG_multisampled_render_to_texture = !_glewInit_GL_IMG_multisampled_render_to_texture(); +#endif /* GL_IMG_multisampled_render_to_texture */ #ifdef GL_INTEL_map_texture - GLEW_INTEL_map_texture = _glewSearchExtension("GL_INTEL_map_texture", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture(); #endif /* GL_INTEL_map_texture */ #ifdef GL_INTEL_parallel_arrays - GLEW_INTEL_parallel_arrays = _glewSearchExtension("GL_INTEL_parallel_arrays", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays(); #endif /* GL_INTEL_parallel_arrays */ #ifdef GL_INTEL_performance_query - GLEW_INTEL_performance_query = _glewSearchExtension("GL_INTEL_performance_query", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query(); #endif /* GL_INTEL_performance_query */ #ifdef GL_INTEL_texture_scissor - GLEW_INTEL_texture_scissor = _glewSearchExtension("GL_INTEL_texture_scissor", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor(); #endif /* GL_INTEL_texture_scissor */ #ifdef GL_KHR_blend_equation_advanced - GLEW_KHR_blend_equation_advanced = _glewSearchExtension("GL_KHR_blend_equation_advanced", extStart, extEnd); - if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced(); #endif /* GL_KHR_blend_equation_advanced */ -#ifdef GL_KHR_blend_equation_advanced_coherent - GLEW_KHR_blend_equation_advanced_coherent = _glewSearchExtension("GL_KHR_blend_equation_advanced_coherent", extStart, extEnd); -#endif /* GL_KHR_blend_equation_advanced_coherent */ -#ifdef GL_KHR_context_flush_control - GLEW_KHR_context_flush_control = _glewSearchExtension("GL_KHR_context_flush_control", extStart, extEnd); -#endif /* GL_KHR_context_flush_control */ #ifdef GL_KHR_debug - GLEW_KHR_debug = _glewSearchExtension("GL_KHR_debug", extStart, extEnd); - if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug(); #endif /* GL_KHR_debug */ -#ifdef GL_KHR_no_error - GLEW_KHR_no_error = _glewSearchExtension("GL_KHR_no_error", extStart, extEnd); -#endif /* GL_KHR_no_error */ -#ifdef GL_KHR_robust_buffer_access_behavior - GLEW_KHR_robust_buffer_access_behavior = _glewSearchExtension("GL_KHR_robust_buffer_access_behavior", extStart, extEnd); -#endif /* GL_KHR_robust_buffer_access_behavior */ +#ifdef GL_KHR_parallel_shader_compile + if (glewExperimental || GLEW_KHR_parallel_shader_compile) GLEW_KHR_parallel_shader_compile = !_glewInit_GL_KHR_parallel_shader_compile(); +#endif /* GL_KHR_parallel_shader_compile */ #ifdef GL_KHR_robustness - GLEW_KHR_robustness = _glewSearchExtension("GL_KHR_robustness", extStart, extEnd); - if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness(); #endif /* GL_KHR_robustness */ -#ifdef GL_KHR_texture_compression_astc_hdr - GLEW_KHR_texture_compression_astc_hdr = _glewSearchExtension("GL_KHR_texture_compression_astc_hdr", extStart, extEnd); -#endif /* GL_KHR_texture_compression_astc_hdr */ -#ifdef GL_KHR_texture_compression_astc_ldr - GLEW_KHR_texture_compression_astc_ldr = _glewSearchExtension("GL_KHR_texture_compression_astc_ldr", extStart, extEnd); -#endif /* GL_KHR_texture_compression_astc_ldr */ #ifdef GL_KTX_buffer_region - GLEW_KTX_buffer_region = _glewSearchExtension("GL_KTX_buffer_region", extStart, extEnd); - if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(); #endif /* GL_KTX_buffer_region */ -#ifdef GL_MESAX_texture_stack - GLEW_MESAX_texture_stack = _glewSearchExtension("GL_MESAX_texture_stack", extStart, extEnd); -#endif /* GL_MESAX_texture_stack */ -#ifdef GL_MESA_pack_invert - GLEW_MESA_pack_invert = _glewSearchExtension("GL_MESA_pack_invert", extStart, extEnd); -#endif /* GL_MESA_pack_invert */ +#ifdef GL_MESA_framebuffer_flip_y + if (glewExperimental || GLEW_MESA_framebuffer_flip_y) GLEW_MESA_framebuffer_flip_y = !_glewInit_GL_MESA_framebuffer_flip_y(); +#endif /* GL_MESA_framebuffer_flip_y */ #ifdef GL_MESA_resize_buffers - GLEW_MESA_resize_buffers = _glewSearchExtension("GL_MESA_resize_buffers", extStart, extEnd); - if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(); #endif /* GL_MESA_resize_buffers */ #ifdef GL_MESA_window_pos - GLEW_MESA_window_pos = _glewSearchExtension("GL_MESA_window_pos", extStart, extEnd); - if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos(); #endif /* GL_MESA_window_pos */ -#ifdef GL_MESA_ycbcr_texture - GLEW_MESA_ycbcr_texture = _glewSearchExtension("GL_MESA_ycbcr_texture", extStart, extEnd); -#endif /* GL_MESA_ycbcr_texture */ #ifdef GL_NVX_conditional_render - GLEW_NVX_conditional_render = _glewSearchExtension("GL_NVX_conditional_render", extStart, extEnd); - if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render(); #endif /* GL_NVX_conditional_render */ -#ifdef GL_NVX_gpu_memory_info - GLEW_NVX_gpu_memory_info = _glewSearchExtension("GL_NVX_gpu_memory_info", extStart, extEnd); -#endif /* GL_NVX_gpu_memory_info */ +#ifdef GL_NVX_gpu_multicast2 + if (glewExperimental || GLEW_NVX_gpu_multicast2) GLEW_NVX_gpu_multicast2 = !_glewInit_GL_NVX_gpu_multicast2(); +#endif /* GL_NVX_gpu_multicast2 */ +#ifdef GL_NVX_linked_gpu_multicast + if (glewExperimental || GLEW_NVX_linked_gpu_multicast) GLEW_NVX_linked_gpu_multicast = !_glewInit_GL_NVX_linked_gpu_multicast(); +#endif /* GL_NVX_linked_gpu_multicast */ +#ifdef GL_NVX_progress_fence + if (glewExperimental || GLEW_NVX_progress_fence) GLEW_NVX_progress_fence = !_glewInit_GL_NVX_progress_fence(); +#endif /* GL_NVX_progress_fence */ +#ifdef GL_NV_3dvision_settings + if (glewExperimental || GLEW_NV_3dvision_settings) GLEW_NV_3dvision_settings = !_glewInit_GL_NV_3dvision_settings(); +#endif /* GL_NV_3dvision_settings */ +#ifdef GL_NV_alpha_to_coverage_dither_control + if (glewExperimental || GLEW_NV_alpha_to_coverage_dither_control) GLEW_NV_alpha_to_coverage_dither_control = !_glewInit_GL_NV_alpha_to_coverage_dither_control(); +#endif /* GL_NV_alpha_to_coverage_dither_control */ #ifdef GL_NV_bindless_multi_draw_indirect - GLEW_NV_bindless_multi_draw_indirect = _glewSearchExtension("GL_NV_bindless_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect(); #endif /* GL_NV_bindless_multi_draw_indirect */ #ifdef GL_NV_bindless_multi_draw_indirect_count - GLEW_NV_bindless_multi_draw_indirect_count = _glewSearchExtension("GL_NV_bindless_multi_draw_indirect_count", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count(); #endif /* GL_NV_bindless_multi_draw_indirect_count */ #ifdef GL_NV_bindless_texture - GLEW_NV_bindless_texture = _glewSearchExtension("GL_NV_bindless_texture", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture(); #endif /* GL_NV_bindless_texture */ #ifdef GL_NV_blend_equation_advanced - GLEW_NV_blend_equation_advanced = _glewSearchExtension("GL_NV_blend_equation_advanced", extStart, extEnd); - if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced(); #endif /* GL_NV_blend_equation_advanced */ -#ifdef GL_NV_blend_equation_advanced_coherent - GLEW_NV_blend_equation_advanced_coherent = _glewSearchExtension("GL_NV_blend_equation_advanced_coherent", extStart, extEnd); -#endif /* GL_NV_blend_equation_advanced_coherent */ -#ifdef GL_NV_blend_square - GLEW_NV_blend_square = _glewSearchExtension("GL_NV_blend_square", extStart, extEnd); -#endif /* GL_NV_blend_square */ -#ifdef GL_NV_compute_program5 - GLEW_NV_compute_program5 = _glewSearchExtension("GL_NV_compute_program5", extStart, extEnd); -#endif /* GL_NV_compute_program5 */ +#ifdef GL_NV_clip_space_w_scaling + if (glewExperimental || GLEW_NV_clip_space_w_scaling) GLEW_NV_clip_space_w_scaling = !_glewInit_GL_NV_clip_space_w_scaling(); +#endif /* GL_NV_clip_space_w_scaling */ +#ifdef GL_NV_command_list + if (glewExperimental || GLEW_NV_command_list) GLEW_NV_command_list = !_glewInit_GL_NV_command_list(); +#endif /* GL_NV_command_list */ #ifdef GL_NV_conditional_render - GLEW_NV_conditional_render = _glewSearchExtension("GL_NV_conditional_render", extStart, extEnd); - if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render(); #endif /* GL_NV_conditional_render */ #ifdef GL_NV_conservative_raster - GLEW_NV_conservative_raster = _glewSearchExtension("GL_NV_conservative_raster", extStart, extEnd); - if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster(); #endif /* GL_NV_conservative_raster */ #ifdef GL_NV_conservative_raster_dilate - GLEW_NV_conservative_raster_dilate = _glewSearchExtension("GL_NV_conservative_raster_dilate", extStart, extEnd); - if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate(); #endif /* GL_NV_conservative_raster_dilate */ -#ifdef GL_NV_copy_depth_to_color - GLEW_NV_copy_depth_to_color = _glewSearchExtension("GL_NV_copy_depth_to_color", extStart, extEnd); -#endif /* GL_NV_copy_depth_to_color */ +#ifdef GL_NV_conservative_raster_pre_snap_triangles + if (glewExperimental || GLEW_NV_conservative_raster_pre_snap_triangles) GLEW_NV_conservative_raster_pre_snap_triangles = !_glewInit_GL_NV_conservative_raster_pre_snap_triangles(); +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ +#ifdef GL_NV_copy_buffer + if (glewExperimental || GLEW_NV_copy_buffer) GLEW_NV_copy_buffer = !_glewInit_GL_NV_copy_buffer(); +#endif /* GL_NV_copy_buffer */ #ifdef GL_NV_copy_image - GLEW_NV_copy_image = _glewSearchExtension("GL_NV_copy_image", extStart, extEnd); - if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image(); #endif /* GL_NV_copy_image */ -#ifdef GL_NV_deep_texture3D - GLEW_NV_deep_texture3D = _glewSearchExtension("GL_NV_deep_texture3D", extStart, extEnd); -#endif /* GL_NV_deep_texture3D */ #ifdef GL_NV_depth_buffer_float - GLEW_NV_depth_buffer_float = _glewSearchExtension("GL_NV_depth_buffer_float", extStart, extEnd); - if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float(); #endif /* GL_NV_depth_buffer_float */ -#ifdef GL_NV_depth_clamp - GLEW_NV_depth_clamp = _glewSearchExtension("GL_NV_depth_clamp", extStart, extEnd); -#endif /* GL_NV_depth_clamp */ -#ifdef GL_NV_depth_range_unclamped - GLEW_NV_depth_range_unclamped = _glewSearchExtension("GL_NV_depth_range_unclamped", extStart, extEnd); -#endif /* GL_NV_depth_range_unclamped */ +#ifdef GL_NV_draw_buffers + if (glewExperimental || GLEW_NV_draw_buffers) GLEW_NV_draw_buffers = !_glewInit_GL_NV_draw_buffers(); +#endif /* GL_NV_draw_buffers */ +#ifdef GL_NV_draw_instanced + if (glewExperimental || GLEW_NV_draw_instanced) GLEW_NV_draw_instanced = !_glewInit_GL_NV_draw_instanced(); +#endif /* GL_NV_draw_instanced */ #ifdef GL_NV_draw_texture - GLEW_NV_draw_texture = _glewSearchExtension("GL_NV_draw_texture", extStart, extEnd); - if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture(); #endif /* GL_NV_draw_texture */ +#ifdef GL_NV_draw_vulkan_image + if (glewExperimental || GLEW_NV_draw_vulkan_image) GLEW_NV_draw_vulkan_image = !_glewInit_GL_NV_draw_vulkan_image(); +#endif /* GL_NV_draw_vulkan_image */ #ifdef GL_NV_evaluators - GLEW_NV_evaluators = _glewSearchExtension("GL_NV_evaluators", extStart, extEnd); - if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators(); #endif /* GL_NV_evaluators */ #ifdef GL_NV_explicit_multisample - GLEW_NV_explicit_multisample = _glewSearchExtension("GL_NV_explicit_multisample", extStart, extEnd); - if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample(); #endif /* GL_NV_explicit_multisample */ #ifdef GL_NV_fence - GLEW_NV_fence = _glewSearchExtension("GL_NV_fence", extStart, extEnd); - if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence(); #endif /* GL_NV_fence */ -#ifdef GL_NV_fill_rectangle - GLEW_NV_fill_rectangle = _glewSearchExtension("GL_NV_fill_rectangle", extStart, extEnd); -#endif /* GL_NV_fill_rectangle */ -#ifdef GL_NV_float_buffer - GLEW_NV_float_buffer = _glewSearchExtension("GL_NV_float_buffer", extStart, extEnd); -#endif /* GL_NV_float_buffer */ -#ifdef GL_NV_fog_distance - GLEW_NV_fog_distance = _glewSearchExtension("GL_NV_fog_distance", extStart, extEnd); -#endif /* GL_NV_fog_distance */ #ifdef GL_NV_fragment_coverage_to_color - GLEW_NV_fragment_coverage_to_color = _glewSearchExtension("GL_NV_fragment_coverage_to_color", extStart, extEnd); - if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color(); #endif /* GL_NV_fragment_coverage_to_color */ #ifdef GL_NV_fragment_program - GLEW_NV_fragment_program = _glewSearchExtension("GL_NV_fragment_program", extStart, extEnd); - if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program(); #endif /* GL_NV_fragment_program */ -#ifdef GL_NV_fragment_program2 - GLEW_NV_fragment_program2 = _glewSearchExtension("GL_NV_fragment_program2", extStart, extEnd); -#endif /* GL_NV_fragment_program2 */ -#ifdef GL_NV_fragment_program4 - GLEW_NV_fragment_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); -#endif /* GL_NV_fragment_program4 */ -#ifdef GL_NV_fragment_program_option - GLEW_NV_fragment_program_option = _glewSearchExtension("GL_NV_fragment_program_option", extStart, extEnd); -#endif /* GL_NV_fragment_program_option */ -#ifdef GL_NV_fragment_shader_interlock - GLEW_NV_fragment_shader_interlock = _glewSearchExtension("GL_NV_fragment_shader_interlock", extStart, extEnd); -#endif /* GL_NV_fragment_shader_interlock */ -#ifdef GL_NV_framebuffer_mixed_samples - GLEW_NV_framebuffer_mixed_samples = _glewSearchExtension("GL_NV_framebuffer_mixed_samples", extStart, extEnd); -#endif /* GL_NV_framebuffer_mixed_samples */ +#ifdef GL_NV_framebuffer_blit + if (glewExperimental || GLEW_NV_framebuffer_blit) GLEW_NV_framebuffer_blit = !_glewInit_GL_NV_framebuffer_blit(); +#endif /* GL_NV_framebuffer_blit */ +#ifdef GL_NV_framebuffer_multisample + if (glewExperimental || GLEW_NV_framebuffer_multisample) GLEW_NV_framebuffer_multisample = !_glewInit_GL_NV_framebuffer_multisample(); +#endif /* GL_NV_framebuffer_multisample */ #ifdef GL_NV_framebuffer_multisample_coverage - GLEW_NV_framebuffer_multisample_coverage = _glewSearchExtension("GL_NV_framebuffer_multisample_coverage", extStart, extEnd); - if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage(); #endif /* GL_NV_framebuffer_multisample_coverage */ #ifdef GL_NV_geometry_program4 - GLEW_NV_geometry_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); - if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4(); #endif /* GL_NV_geometry_program4 */ -#ifdef GL_NV_geometry_shader4 - GLEW_NV_geometry_shader4 = _glewSearchExtension("GL_NV_geometry_shader4", extStart, extEnd); -#endif /* GL_NV_geometry_shader4 */ -#ifdef GL_NV_geometry_shader_passthrough - GLEW_NV_geometry_shader_passthrough = _glewSearchExtension("GL_NV_geometry_shader_passthrough", extStart, extEnd); -#endif /* GL_NV_geometry_shader_passthrough */ +#ifdef GL_NV_gpu_multicast + if (glewExperimental || GLEW_NV_gpu_multicast) GLEW_NV_gpu_multicast = !_glewInit_GL_NV_gpu_multicast(); +#endif /* GL_NV_gpu_multicast */ #ifdef GL_NV_gpu_program4 - GLEW_NV_gpu_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); - if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4(); #endif /* GL_NV_gpu_program4 */ -#ifdef GL_NV_gpu_program5 - GLEW_NV_gpu_program5 = _glewSearchExtension("GL_NV_gpu_program5", extStart, extEnd); -#endif /* GL_NV_gpu_program5 */ -#ifdef GL_NV_gpu_program5_mem_extended - GLEW_NV_gpu_program5_mem_extended = _glewSearchExtension("GL_NV_gpu_program5_mem_extended", extStart, extEnd); -#endif /* GL_NV_gpu_program5_mem_extended */ -#ifdef GL_NV_gpu_program_fp64 - GLEW_NV_gpu_program_fp64 = _glewSearchExtension("GL_NV_gpu_program_fp64", extStart, extEnd); -#endif /* GL_NV_gpu_program_fp64 */ #ifdef GL_NV_gpu_shader5 - GLEW_NV_gpu_shader5 = _glewSearchExtension("GL_NV_gpu_shader5", extStart, extEnd); - if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5(); #endif /* GL_NV_gpu_shader5 */ #ifdef GL_NV_half_float - GLEW_NV_half_float = _glewSearchExtension("GL_NV_half_float", extStart, extEnd); - if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float(); #endif /* GL_NV_half_float */ +#ifdef GL_NV_instanced_arrays + if (glewExperimental || GLEW_NV_instanced_arrays) GLEW_NV_instanced_arrays = !_glewInit_GL_NV_instanced_arrays(); +#endif /* GL_NV_instanced_arrays */ #ifdef GL_NV_internalformat_sample_query - GLEW_NV_internalformat_sample_query = _glewSearchExtension("GL_NV_internalformat_sample_query", extStart, extEnd); - if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query(); #endif /* GL_NV_internalformat_sample_query */ -#ifdef GL_NV_light_max_exponent - GLEW_NV_light_max_exponent = _glewSearchExtension("GL_NV_light_max_exponent", extStart, extEnd); -#endif /* GL_NV_light_max_exponent */ -#ifdef GL_NV_multisample_coverage - GLEW_NV_multisample_coverage = _glewSearchExtension("GL_NV_multisample_coverage", extStart, extEnd); -#endif /* GL_NV_multisample_coverage */ -#ifdef GL_NV_multisample_filter_hint - GLEW_NV_multisample_filter_hint = _glewSearchExtension("GL_NV_multisample_filter_hint", extStart, extEnd); -#endif /* GL_NV_multisample_filter_hint */ +#ifdef GL_NV_memory_attachment + if (glewExperimental || GLEW_NV_memory_attachment) GLEW_NV_memory_attachment = !_glewInit_GL_NV_memory_attachment(); +#endif /* GL_NV_memory_attachment */ +#ifdef GL_NV_mesh_shader + if (glewExperimental || GLEW_NV_mesh_shader) GLEW_NV_mesh_shader = !_glewInit_GL_NV_mesh_shader(); +#endif /* GL_NV_mesh_shader */ +#ifdef GL_NV_non_square_matrices + if (glewExperimental || GLEW_NV_non_square_matrices) GLEW_NV_non_square_matrices = !_glewInit_GL_NV_non_square_matrices(); +#endif /* GL_NV_non_square_matrices */ #ifdef GL_NV_occlusion_query - GLEW_NV_occlusion_query = _glewSearchExtension("GL_NV_occlusion_query", extStart, extEnd); - if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query(); #endif /* GL_NV_occlusion_query */ -#ifdef GL_NV_packed_depth_stencil - GLEW_NV_packed_depth_stencil = _glewSearchExtension("GL_NV_packed_depth_stencil", extStart, extEnd); -#endif /* GL_NV_packed_depth_stencil */ #ifdef GL_NV_parameter_buffer_object - GLEW_NV_parameter_buffer_object = _glewSearchExtension("GL_NV_parameter_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object(); #endif /* GL_NV_parameter_buffer_object */ -#ifdef GL_NV_parameter_buffer_object2 - GLEW_NV_parameter_buffer_object2 = _glewSearchExtension("GL_NV_parameter_buffer_object2", extStart, extEnd); -#endif /* GL_NV_parameter_buffer_object2 */ #ifdef GL_NV_path_rendering - GLEW_NV_path_rendering = _glewSearchExtension("GL_NV_path_rendering", extStart, extEnd); - if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering(); #endif /* GL_NV_path_rendering */ -#ifdef GL_NV_path_rendering_shared_edge - GLEW_NV_path_rendering_shared_edge = _glewSearchExtension("GL_NV_path_rendering_shared_edge", extStart, extEnd); -#endif /* GL_NV_path_rendering_shared_edge */ #ifdef GL_NV_pixel_data_range - GLEW_NV_pixel_data_range = _glewSearchExtension("GL_NV_pixel_data_range", extStart, extEnd); - if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range(); #endif /* GL_NV_pixel_data_range */ #ifdef GL_NV_point_sprite - GLEW_NV_point_sprite = _glewSearchExtension("GL_NV_point_sprite", extStart, extEnd); - if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite(); #endif /* GL_NV_point_sprite */ +#ifdef GL_NV_polygon_mode + if (glewExperimental || GLEW_NV_polygon_mode) GLEW_NV_polygon_mode = !_glewInit_GL_NV_polygon_mode(); +#endif /* GL_NV_polygon_mode */ #ifdef GL_NV_present_video - GLEW_NV_present_video = _glewSearchExtension("GL_NV_present_video", extStart, extEnd); - if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video(); #endif /* GL_NV_present_video */ #ifdef GL_NV_primitive_restart - GLEW_NV_primitive_restart = _glewSearchExtension("GL_NV_primitive_restart", extStart, extEnd); - if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart(); #endif /* GL_NV_primitive_restart */ +#ifdef GL_NV_read_buffer + if (glewExperimental || GLEW_NV_read_buffer) GLEW_NV_read_buffer = !_glewInit_GL_NV_read_buffer(); +#endif /* GL_NV_read_buffer */ #ifdef GL_NV_register_combiners - GLEW_NV_register_combiners = _glewSearchExtension("GL_NV_register_combiners", extStart, extEnd); - if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners(); #endif /* GL_NV_register_combiners */ #ifdef GL_NV_register_combiners2 - GLEW_NV_register_combiners2 = _glewSearchExtension("GL_NV_register_combiners2", extStart, extEnd); - if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2(); #endif /* GL_NV_register_combiners2 */ #ifdef GL_NV_sample_locations - GLEW_NV_sample_locations = _glewSearchExtension("GL_NV_sample_locations", extStart, extEnd); - if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations(); #endif /* GL_NV_sample_locations */ -#ifdef GL_NV_sample_mask_override_coverage - GLEW_NV_sample_mask_override_coverage = _glewSearchExtension("GL_NV_sample_mask_override_coverage", extStart, extEnd); -#endif /* GL_NV_sample_mask_override_coverage */ -#ifdef GL_NV_shader_atomic_counters - GLEW_NV_shader_atomic_counters = _glewSearchExtension("GL_NV_shader_atomic_counters", extStart, extEnd); -#endif /* GL_NV_shader_atomic_counters */ -#ifdef GL_NV_shader_atomic_float - GLEW_NV_shader_atomic_float = _glewSearchExtension("GL_NV_shader_atomic_float", extStart, extEnd); -#endif /* GL_NV_shader_atomic_float */ -#ifdef GL_NV_shader_atomic_fp16_vector - GLEW_NV_shader_atomic_fp16_vector = _glewSearchExtension("GL_NV_shader_atomic_fp16_vector", extStart, extEnd); -#endif /* GL_NV_shader_atomic_fp16_vector */ -#ifdef GL_NV_shader_atomic_int64 - GLEW_NV_shader_atomic_int64 = _glewSearchExtension("GL_NV_shader_atomic_int64", extStart, extEnd); -#endif /* GL_NV_shader_atomic_int64 */ +#ifdef GL_NV_scissor_exclusive + if (glewExperimental || GLEW_NV_scissor_exclusive) GLEW_NV_scissor_exclusive = !_glewInit_GL_NV_scissor_exclusive(); +#endif /* GL_NV_scissor_exclusive */ #ifdef GL_NV_shader_buffer_load - GLEW_NV_shader_buffer_load = _glewSearchExtension("GL_NV_shader_buffer_load", extStart, extEnd); - if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load(); #endif /* GL_NV_shader_buffer_load */ -#ifdef GL_NV_shader_storage_buffer_object - GLEW_NV_shader_storage_buffer_object = _glewSearchExtension("GL_NV_shader_storage_buffer_object", extStart, extEnd); -#endif /* GL_NV_shader_storage_buffer_object */ -#ifdef GL_NV_shader_thread_group - GLEW_NV_shader_thread_group = _glewSearchExtension("GL_NV_shader_thread_group", extStart, extEnd); -#endif /* GL_NV_shader_thread_group */ -#ifdef GL_NV_shader_thread_shuffle - GLEW_NV_shader_thread_shuffle = _glewSearchExtension("GL_NV_shader_thread_shuffle", extStart, extEnd); -#endif /* GL_NV_shader_thread_shuffle */ -#ifdef GL_NV_tessellation_program5 - GLEW_NV_tessellation_program5 = _glewSearchExtension("GL_NV_gpu_program5", extStart, extEnd); -#endif /* GL_NV_tessellation_program5 */ -#ifdef GL_NV_texgen_emboss - GLEW_NV_texgen_emboss = _glewSearchExtension("GL_NV_texgen_emboss", extStart, extEnd); -#endif /* GL_NV_texgen_emboss */ -#ifdef GL_NV_texgen_reflection - GLEW_NV_texgen_reflection = _glewSearchExtension("GL_NV_texgen_reflection", extStart, extEnd); -#endif /* GL_NV_texgen_reflection */ +#ifdef GL_NV_shading_rate_image + if (glewExperimental || GLEW_NV_shading_rate_image) GLEW_NV_shading_rate_image = !_glewInit_GL_NV_shading_rate_image(); +#endif /* GL_NV_shading_rate_image */ +#ifdef GL_NV_texture_array + if (glewExperimental || GLEW_NV_texture_array) GLEW_NV_texture_array = !_glewInit_GL_NV_texture_array(); +#endif /* GL_NV_texture_array */ #ifdef GL_NV_texture_barrier - GLEW_NV_texture_barrier = _glewSearchExtension("GL_NV_texture_barrier", extStart, extEnd); - if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier(); #endif /* GL_NV_texture_barrier */ -#ifdef GL_NV_texture_compression_vtc - GLEW_NV_texture_compression_vtc = _glewSearchExtension("GL_NV_texture_compression_vtc", extStart, extEnd); -#endif /* GL_NV_texture_compression_vtc */ -#ifdef GL_NV_texture_env_combine4 - GLEW_NV_texture_env_combine4 = _glewSearchExtension("GL_NV_texture_env_combine4", extStart, extEnd); -#endif /* GL_NV_texture_env_combine4 */ -#ifdef GL_NV_texture_expand_normal - GLEW_NV_texture_expand_normal = _glewSearchExtension("GL_NV_texture_expand_normal", extStart, extEnd); -#endif /* GL_NV_texture_expand_normal */ #ifdef GL_NV_texture_multisample - GLEW_NV_texture_multisample = _glewSearchExtension("GL_NV_texture_multisample", extStart, extEnd); - if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample(); #endif /* GL_NV_texture_multisample */ -#ifdef GL_NV_texture_rectangle - GLEW_NV_texture_rectangle = _glewSearchExtension("GL_NV_texture_rectangle", extStart, extEnd); -#endif /* GL_NV_texture_rectangle */ -#ifdef GL_NV_texture_shader - GLEW_NV_texture_shader = _glewSearchExtension("GL_NV_texture_shader", extStart, extEnd); -#endif /* GL_NV_texture_shader */ -#ifdef GL_NV_texture_shader2 - GLEW_NV_texture_shader2 = _glewSearchExtension("GL_NV_texture_shader2", extStart, extEnd); -#endif /* GL_NV_texture_shader2 */ -#ifdef GL_NV_texture_shader3 - GLEW_NV_texture_shader3 = _glewSearchExtension("GL_NV_texture_shader3", extStart, extEnd); -#endif /* GL_NV_texture_shader3 */ #ifdef GL_NV_transform_feedback - GLEW_NV_transform_feedback = _glewSearchExtension("GL_NV_transform_feedback", extStart, extEnd); - if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback(); #endif /* GL_NV_transform_feedback */ #ifdef GL_NV_transform_feedback2 - GLEW_NV_transform_feedback2 = _glewSearchExtension("GL_NV_transform_feedback2", extStart, extEnd); - if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2(); #endif /* GL_NV_transform_feedback2 */ -#ifdef GL_NV_uniform_buffer_unified_memory - GLEW_NV_uniform_buffer_unified_memory = _glewSearchExtension("GL_NV_uniform_buffer_unified_memory", extStart, extEnd); -#endif /* GL_NV_uniform_buffer_unified_memory */ #ifdef GL_NV_vdpau_interop - GLEW_NV_vdpau_interop = _glewSearchExtension("GL_NV_vdpau_interop", extStart, extEnd); - if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop(); #endif /* GL_NV_vdpau_interop */ +#ifdef GL_NV_vdpau_interop2 + if (glewExperimental || GLEW_NV_vdpau_interop2) GLEW_NV_vdpau_interop2 = !_glewInit_GL_NV_vdpau_interop2(); +#endif /* GL_NV_vdpau_interop2 */ #ifdef GL_NV_vertex_array_range - GLEW_NV_vertex_array_range = _glewSearchExtension("GL_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range(); #endif /* GL_NV_vertex_array_range */ -#ifdef GL_NV_vertex_array_range2 - GLEW_NV_vertex_array_range2 = _glewSearchExtension("GL_NV_vertex_array_range2", extStart, extEnd); -#endif /* GL_NV_vertex_array_range2 */ #ifdef GL_NV_vertex_attrib_integer_64bit - GLEW_NV_vertex_attrib_integer_64bit = _glewSearchExtension("GL_NV_vertex_attrib_integer_64bit", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit(); #endif /* GL_NV_vertex_attrib_integer_64bit */ #ifdef GL_NV_vertex_buffer_unified_memory - GLEW_NV_vertex_buffer_unified_memory = _glewSearchExtension("GL_NV_vertex_buffer_unified_memory", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory(); #endif /* GL_NV_vertex_buffer_unified_memory */ #ifdef GL_NV_vertex_program - GLEW_NV_vertex_program = _glewSearchExtension("GL_NV_vertex_program", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program(); #endif /* GL_NV_vertex_program */ -#ifdef GL_NV_vertex_program1_1 - GLEW_NV_vertex_program1_1 = _glewSearchExtension("GL_NV_vertex_program1_1", extStart, extEnd); -#endif /* GL_NV_vertex_program1_1 */ -#ifdef GL_NV_vertex_program2 - GLEW_NV_vertex_program2 = _glewSearchExtension("GL_NV_vertex_program2", extStart, extEnd); -#endif /* GL_NV_vertex_program2 */ -#ifdef GL_NV_vertex_program2_option - GLEW_NV_vertex_program2_option = _glewSearchExtension("GL_NV_vertex_program2_option", extStart, extEnd); -#endif /* GL_NV_vertex_program2_option */ -#ifdef GL_NV_vertex_program3 - GLEW_NV_vertex_program3 = _glewSearchExtension("GL_NV_vertex_program3", extStart, extEnd); -#endif /* GL_NV_vertex_program3 */ -#ifdef GL_NV_vertex_program4 - GLEW_NV_vertex_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); -#endif /* GL_NV_vertex_program4 */ #ifdef GL_NV_video_capture - GLEW_NV_video_capture = _glewSearchExtension("GL_NV_video_capture", extStart, extEnd); - if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture(); #endif /* GL_NV_video_capture */ -#ifdef GL_NV_viewport_array2 - GLEW_NV_viewport_array2 = _glewSearchExtension("GL_NV_viewport_array2", extStart, extEnd); -#endif /* GL_NV_viewport_array2 */ -#ifdef GL_OES_byte_coordinates - GLEW_OES_byte_coordinates = _glewSearchExtension("GL_OES_byte_coordinates", extStart, extEnd); -#endif /* GL_OES_byte_coordinates */ -#ifdef GL_OES_compressed_paletted_texture - GLEW_OES_compressed_paletted_texture = _glewSearchExtension("GL_OES_compressed_paletted_texture", extStart, extEnd); -#endif /* GL_OES_compressed_paletted_texture */ -#ifdef GL_OES_read_format - GLEW_OES_read_format = _glewSearchExtension("GL_OES_read_format", extStart, extEnd); -#endif /* GL_OES_read_format */ +#ifdef GL_NV_viewport_array + if (glewExperimental || GLEW_NV_viewport_array) GLEW_NV_viewport_array = !_glewInit_GL_NV_viewport_array(); +#endif /* GL_NV_viewport_array */ +#ifdef GL_NV_viewport_swizzle + if (glewExperimental || GLEW_NV_viewport_swizzle) GLEW_NV_viewport_swizzle = !_glewInit_GL_NV_viewport_swizzle(); +#endif /* GL_NV_viewport_swizzle */ +#ifdef GL_OES_EGL_image + if (glewExperimental || GLEW_OES_EGL_image) GLEW_OES_EGL_image = !_glewInit_GL_OES_EGL_image(); +#endif /* GL_OES_EGL_image */ +#ifdef GL_OES_blend_equation_separate + if (glewExperimental || GLEW_OES_blend_equation_separate) GLEW_OES_blend_equation_separate = !_glewInit_GL_OES_blend_equation_separate(); +#endif /* GL_OES_blend_equation_separate */ +#ifdef GL_OES_blend_func_separate + if (glewExperimental || GLEW_OES_blend_func_separate) GLEW_OES_blend_func_separate = !_glewInit_GL_OES_blend_func_separate(); +#endif /* GL_OES_blend_func_separate */ +#ifdef GL_OES_blend_subtract + if (glewExperimental || GLEW_OES_blend_subtract) GLEW_OES_blend_subtract = !_glewInit_GL_OES_blend_subtract(); +#endif /* GL_OES_blend_subtract */ +#ifdef GL_OES_copy_image + if (glewExperimental || GLEW_OES_copy_image) GLEW_OES_copy_image = !_glewInit_GL_OES_copy_image(); +#endif /* GL_OES_copy_image */ +#ifdef GL_OES_draw_buffers_indexed + if (glewExperimental || GLEW_OES_draw_buffers_indexed) GLEW_OES_draw_buffers_indexed = !_glewInit_GL_OES_draw_buffers_indexed(); +#endif /* GL_OES_draw_buffers_indexed */ +#ifdef GL_OES_framebuffer_object + if (glewExperimental || GLEW_OES_framebuffer_object) GLEW_OES_framebuffer_object = !_glewInit_GL_OES_framebuffer_object(); +#endif /* GL_OES_framebuffer_object */ +#ifdef GL_OES_get_program_binary + if (glewExperimental || GLEW_OES_get_program_binary) GLEW_OES_get_program_binary = !_glewInit_GL_OES_get_program_binary(); +#endif /* GL_OES_get_program_binary */ +#ifdef GL_OES_mapbuffer + if (glewExperimental || GLEW_OES_mapbuffer) GLEW_OES_mapbuffer = !_glewInit_GL_OES_mapbuffer(); +#endif /* GL_OES_mapbuffer */ +#ifdef GL_OES_matrix_palette + if (glewExperimental || GLEW_OES_matrix_palette) GLEW_OES_matrix_palette = !_glewInit_GL_OES_matrix_palette(); +#endif /* GL_OES_matrix_palette */ +#ifdef GL_OES_sample_shading + if (glewExperimental || GLEW_OES_sample_shading) GLEW_OES_sample_shading = !_glewInit_GL_OES_sample_shading(); +#endif /* GL_OES_sample_shading */ #ifdef GL_OES_single_precision - GLEW_OES_single_precision = _glewSearchExtension("GL_OES_single_precision", extStart, extEnd); - if (glewExperimental || GLEW_OES_single_precision) GLEW_OES_single_precision = !_glewInit_GL_OES_single_precision(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_OES_single_precision) GLEW_OES_single_precision = !_glewInit_GL_OES_single_precision(); #endif /* GL_OES_single_precision */ -#ifdef GL_OML_interlace - GLEW_OML_interlace = _glewSearchExtension("GL_OML_interlace", extStart, extEnd); -#endif /* GL_OML_interlace */ -#ifdef GL_OML_resample - GLEW_OML_resample = _glewSearchExtension("GL_OML_resample", extStart, extEnd); -#endif /* GL_OML_resample */ -#ifdef GL_OML_subsample - GLEW_OML_subsample = _glewSearchExtension("GL_OML_subsample", extStart, extEnd); -#endif /* GL_OML_subsample */ +#ifdef GL_OES_texture_3D + if (glewExperimental || GLEW_OES_texture_3D) GLEW_OES_texture_3D = !_glewInit_GL_OES_texture_3D(); +#endif /* GL_OES_texture_3D */ +#ifdef GL_OES_texture_border_clamp + if (glewExperimental || GLEW_OES_texture_border_clamp) GLEW_OES_texture_border_clamp = !_glewInit_GL_OES_texture_border_clamp(); +#endif /* GL_OES_texture_border_clamp */ +#ifdef GL_OES_texture_buffer + if (glewExperimental || GLEW_OES_texture_buffer) GLEW_OES_texture_buffer = !_glewInit_GL_OES_texture_buffer(); +#endif /* GL_OES_texture_buffer */ +#ifdef GL_OES_texture_cube_map + if (glewExperimental || GLEW_OES_texture_cube_map) GLEW_OES_texture_cube_map = !_glewInit_GL_OES_texture_cube_map(); +#endif /* GL_OES_texture_cube_map */ +#ifdef GL_OES_texture_storage_multisample_2d_array + if (glewExperimental || GLEW_OES_texture_storage_multisample_2d_array) GLEW_OES_texture_storage_multisample_2d_array = !_glewInit_GL_OES_texture_storage_multisample_2d_array(); +#endif /* GL_OES_texture_storage_multisample_2d_array */ +#ifdef GL_OES_texture_view + if (glewExperimental || GLEW_OES_texture_view) GLEW_OES_texture_view = !_glewInit_GL_OES_texture_view(); +#endif /* GL_OES_texture_view */ +#ifdef GL_OES_vertex_array_object + if (glewExperimental || GLEW_OES_vertex_array_object) GLEW_OES_vertex_array_object = !_glewInit_GL_OES_vertex_array_object(); +#endif /* GL_OES_vertex_array_object */ #ifdef GL_OVR_multiview - GLEW_OVR_multiview = _glewSearchExtension("GL_OVR_multiview", extStart, extEnd); - if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview(); #endif /* GL_OVR_multiview */ -#ifdef GL_OVR_multiview2 - GLEW_OVR_multiview2 = _glewSearchExtension("GL_OVR_multiview2", extStart, extEnd); -#endif /* GL_OVR_multiview2 */ -#ifdef GL_PGI_misc_hints - GLEW_PGI_misc_hints = _glewSearchExtension("GL_PGI_misc_hints", extStart, extEnd); -#endif /* GL_PGI_misc_hints */ -#ifdef GL_PGI_vertex_hints - GLEW_PGI_vertex_hints = _glewSearchExtension("GL_PGI_vertex_hints", extStart, extEnd); -#endif /* GL_PGI_vertex_hints */ +#ifdef GL_OVR_multiview_multisampled_render_to_texture + if (glewExperimental || GLEW_OVR_multiview_multisampled_render_to_texture) GLEW_OVR_multiview_multisampled_render_to_texture = !_glewInit_GL_OVR_multiview_multisampled_render_to_texture(); +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ +#ifdef GL_QCOM_alpha_test + if (glewExperimental || GLEW_QCOM_alpha_test) GLEW_QCOM_alpha_test = !_glewInit_GL_QCOM_alpha_test(); +#endif /* GL_QCOM_alpha_test */ +#ifdef GL_QCOM_driver_control + if (glewExperimental || GLEW_QCOM_driver_control) GLEW_QCOM_driver_control = !_glewInit_GL_QCOM_driver_control(); +#endif /* GL_QCOM_driver_control */ +#ifdef GL_QCOM_extended_get + if (glewExperimental || GLEW_QCOM_extended_get) GLEW_QCOM_extended_get = !_glewInit_GL_QCOM_extended_get(); +#endif /* GL_QCOM_extended_get */ +#ifdef GL_QCOM_extended_get2 + if (glewExperimental || GLEW_QCOM_extended_get2) GLEW_QCOM_extended_get2 = !_glewInit_GL_QCOM_extended_get2(); +#endif /* GL_QCOM_extended_get2 */ +#ifdef GL_QCOM_framebuffer_foveated + if (glewExperimental || GLEW_QCOM_framebuffer_foveated) GLEW_QCOM_framebuffer_foveated = !_glewInit_GL_QCOM_framebuffer_foveated(); +#endif /* GL_QCOM_framebuffer_foveated */ +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + if (glewExperimental || GLEW_QCOM_shader_framebuffer_fetch_noncoherent) GLEW_QCOM_shader_framebuffer_fetch_noncoherent = !_glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent(); +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ +#ifdef GL_QCOM_texture_foveated + if (glewExperimental || GLEW_QCOM_texture_foveated) GLEW_QCOM_texture_foveated = !_glewInit_GL_QCOM_texture_foveated(); +#endif /* GL_QCOM_texture_foveated */ +#ifdef GL_QCOM_tiled_rendering + if (glewExperimental || GLEW_QCOM_tiled_rendering) GLEW_QCOM_tiled_rendering = !_glewInit_GL_QCOM_tiled_rendering(); +#endif /* GL_QCOM_tiled_rendering */ #ifdef GL_REGAL_ES1_0_compatibility - GLEW_REGAL_ES1_0_compatibility = _glewSearchExtension("GL_REGAL_ES1_0_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility(); #endif /* GL_REGAL_ES1_0_compatibility */ #ifdef GL_REGAL_ES1_1_compatibility - GLEW_REGAL_ES1_1_compatibility = _glewSearchExtension("GL_REGAL_ES1_1_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility(); #endif /* GL_REGAL_ES1_1_compatibility */ -#ifdef GL_REGAL_enable - GLEW_REGAL_enable = _glewSearchExtension("GL_REGAL_enable", extStart, extEnd); -#endif /* GL_REGAL_enable */ #ifdef GL_REGAL_error_string - GLEW_REGAL_error_string = _glewSearchExtension("GL_REGAL_error_string", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string(); #endif /* GL_REGAL_error_string */ #ifdef GL_REGAL_extension_query - GLEW_REGAL_extension_query = _glewSearchExtension("GL_REGAL_extension_query", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query(); #endif /* GL_REGAL_extension_query */ #ifdef GL_REGAL_log - GLEW_REGAL_log = _glewSearchExtension("GL_REGAL_log", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log(); #endif /* GL_REGAL_log */ #ifdef GL_REGAL_proc_address - GLEW_REGAL_proc_address = _glewSearchExtension("GL_REGAL_proc_address", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address(); #endif /* GL_REGAL_proc_address */ -#ifdef GL_REND_screen_coordinates - GLEW_REND_screen_coordinates = _glewSearchExtension("GL_REND_screen_coordinates", extStart, extEnd); -#endif /* GL_REND_screen_coordinates */ -#ifdef GL_S3_s3tc - GLEW_S3_s3tc = _glewSearchExtension("GL_S3_s3tc", extStart, extEnd); -#endif /* GL_S3_s3tc */ -#ifdef GL_SGIS_color_range - GLEW_SGIS_color_range = _glewSearchExtension("GL_SGIS_color_range", extStart, extEnd); -#endif /* GL_SGIS_color_range */ #ifdef GL_SGIS_detail_texture - GLEW_SGIS_detail_texture = _glewSearchExtension("GL_SGIS_detail_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture(); #endif /* GL_SGIS_detail_texture */ #ifdef GL_SGIS_fog_function - GLEW_SGIS_fog_function = _glewSearchExtension("GL_SGIS_fog_function", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function(); #endif /* GL_SGIS_fog_function */ -#ifdef GL_SGIS_generate_mipmap - GLEW_SGIS_generate_mipmap = _glewSearchExtension("GL_SGIS_generate_mipmap", extStart, extEnd); -#endif /* GL_SGIS_generate_mipmap */ #ifdef GL_SGIS_multisample - GLEW_SGIS_multisample = _glewSearchExtension("GL_SGIS_multisample", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample(); #endif /* GL_SGIS_multisample */ -#ifdef GL_SGIS_pixel_texture - GLEW_SGIS_pixel_texture = _glewSearchExtension("GL_SGIS_pixel_texture", extStart, extEnd); -#endif /* GL_SGIS_pixel_texture */ -#ifdef GL_SGIS_point_line_texgen - GLEW_SGIS_point_line_texgen = _glewSearchExtension("GL_SGIS_point_line_texgen", extStart, extEnd); -#endif /* GL_SGIS_point_line_texgen */ +#ifdef GL_SGIS_multitexture + if (glewExperimental || GLEW_SGIS_multitexture) GLEW_SGIS_multitexture = !_glewInit_GL_SGIS_multitexture(); +#endif /* GL_SGIS_multitexture */ +#ifdef GL_SGIS_shared_multisample + if (glewExperimental || GLEW_SGIS_shared_multisample) GLEW_SGIS_shared_multisample = !_glewInit_GL_SGIS_shared_multisample(); +#endif /* GL_SGIS_shared_multisample */ #ifdef GL_SGIS_sharpen_texture - GLEW_SGIS_sharpen_texture = _glewSearchExtension("GL_SGIS_sharpen_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture(); #endif /* GL_SGIS_sharpen_texture */ #ifdef GL_SGIS_texture4D - GLEW_SGIS_texture4D = _glewSearchExtension("GL_SGIS_texture4D", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D(); #endif /* GL_SGIS_texture4D */ -#ifdef GL_SGIS_texture_border_clamp - GLEW_SGIS_texture_border_clamp = _glewSearchExtension("GL_SGIS_texture_border_clamp", extStart, extEnd); -#endif /* GL_SGIS_texture_border_clamp */ -#ifdef GL_SGIS_texture_edge_clamp - GLEW_SGIS_texture_edge_clamp = _glewSearchExtension("GL_SGIS_texture_edge_clamp", extStart, extEnd); -#endif /* GL_SGIS_texture_edge_clamp */ #ifdef GL_SGIS_texture_filter4 - GLEW_SGIS_texture_filter4 = _glewSearchExtension("GL_SGIS_texture_filter4", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4(); #endif /* GL_SGIS_texture_filter4 */ -#ifdef GL_SGIS_texture_lod - GLEW_SGIS_texture_lod = _glewSearchExtension("GL_SGIS_texture_lod", extStart, extEnd); -#endif /* GL_SGIS_texture_lod */ -#ifdef GL_SGIS_texture_select - GLEW_SGIS_texture_select = _glewSearchExtension("GL_SGIS_texture_select", extStart, extEnd); -#endif /* GL_SGIS_texture_select */ #ifdef GL_SGIX_async - GLEW_SGIX_async = _glewSearchExtension("GL_SGIX_async", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async(); #endif /* GL_SGIX_async */ -#ifdef GL_SGIX_async_histogram - GLEW_SGIX_async_histogram = _glewSearchExtension("GL_SGIX_async_histogram", extStart, extEnd); -#endif /* GL_SGIX_async_histogram */ -#ifdef GL_SGIX_async_pixel - GLEW_SGIX_async_pixel = _glewSearchExtension("GL_SGIX_async_pixel", extStart, extEnd); -#endif /* GL_SGIX_async_pixel */ -#ifdef GL_SGIX_blend_alpha_minmax - GLEW_SGIX_blend_alpha_minmax = _glewSearchExtension("GL_SGIX_blend_alpha_minmax", extStart, extEnd); -#endif /* GL_SGIX_blend_alpha_minmax */ -#ifdef GL_SGIX_clipmap - GLEW_SGIX_clipmap = _glewSearchExtension("GL_SGIX_clipmap", extStart, extEnd); -#endif /* GL_SGIX_clipmap */ -#ifdef GL_SGIX_convolution_accuracy - GLEW_SGIX_convolution_accuracy = _glewSearchExtension("GL_SGIX_convolution_accuracy", extStart, extEnd); -#endif /* GL_SGIX_convolution_accuracy */ -#ifdef GL_SGIX_depth_texture - GLEW_SGIX_depth_texture = _glewSearchExtension("GL_SGIX_depth_texture", extStart, extEnd); -#endif /* GL_SGIX_depth_texture */ +#ifdef GL_SGIX_datapipe + if (glewExperimental || GLEW_SGIX_datapipe) GLEW_SGIX_datapipe = !_glewInit_GL_SGIX_datapipe(); +#endif /* GL_SGIX_datapipe */ #ifdef GL_SGIX_flush_raster - GLEW_SGIX_flush_raster = _glewSearchExtension("GL_SGIX_flush_raster", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster(); #endif /* GL_SGIX_flush_raster */ -#ifdef GL_SGIX_fog_offset - GLEW_SGIX_fog_offset = _glewSearchExtension("GL_SGIX_fog_offset", extStart, extEnd); -#endif /* GL_SGIX_fog_offset */ +#ifdef GL_SGIX_fog_layers + if (glewExperimental || GLEW_SGIX_fog_layers) GLEW_SGIX_fog_layers = !_glewInit_GL_SGIX_fog_layers(); +#endif /* GL_SGIX_fog_layers */ #ifdef GL_SGIX_fog_texture - GLEW_SGIX_fog_texture = _glewSearchExtension("GL_SGIX_fog_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture(); #endif /* GL_SGIX_fog_texture */ #ifdef GL_SGIX_fragment_specular_lighting - GLEW_SGIX_fragment_specular_lighting = _glewSearchExtension("GL_SGIX_fragment_specular_lighting", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting(); #endif /* GL_SGIX_fragment_specular_lighting */ #ifdef GL_SGIX_framezoom - GLEW_SGIX_framezoom = _glewSearchExtension("GL_SGIX_framezoom", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom(); #endif /* GL_SGIX_framezoom */ -#ifdef GL_SGIX_interlace - GLEW_SGIX_interlace = _glewSearchExtension("GL_SGIX_interlace", extStart, extEnd); -#endif /* GL_SGIX_interlace */ -#ifdef GL_SGIX_ir_instrument1 - GLEW_SGIX_ir_instrument1 = _glewSearchExtension("GL_SGIX_ir_instrument1", extStart, extEnd); -#endif /* GL_SGIX_ir_instrument1 */ -#ifdef GL_SGIX_list_priority - GLEW_SGIX_list_priority = _glewSearchExtension("GL_SGIX_list_priority", extStart, extEnd); -#endif /* GL_SGIX_list_priority */ +#ifdef GL_SGIX_igloo_interface + if (glewExperimental || GLEW_SGIX_igloo_interface) GLEW_SGIX_igloo_interface = !_glewInit_GL_SGIX_igloo_interface(); +#endif /* GL_SGIX_igloo_interface */ +#ifdef GL_SGIX_mpeg1 + if (glewExperimental || GLEW_SGIX_mpeg1) GLEW_SGIX_mpeg1 = !_glewInit_GL_SGIX_mpeg1(); +#endif /* GL_SGIX_mpeg1 */ +#ifdef GL_SGIX_nonlinear_lighting_pervertex + if (glewExperimental || GLEW_SGIX_nonlinear_lighting_pervertex) GLEW_SGIX_nonlinear_lighting_pervertex = !_glewInit_GL_SGIX_nonlinear_lighting_pervertex(); +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ #ifdef GL_SGIX_pixel_texture - GLEW_SGIX_pixel_texture = _glewSearchExtension("GL_SGIX_pixel_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture(); #endif /* GL_SGIX_pixel_texture */ -#ifdef GL_SGIX_pixel_texture_bits - GLEW_SGIX_pixel_texture_bits = _glewSearchExtension("GL_SGIX_pixel_texture_bits", extStart, extEnd); -#endif /* GL_SGIX_pixel_texture_bits */ +#ifdef GL_SGIX_polynomial_ffd + if (glewExperimental || GLEW_SGIX_polynomial_ffd) GLEW_SGIX_polynomial_ffd = !_glewInit_GL_SGIX_polynomial_ffd(); +#endif /* GL_SGIX_polynomial_ffd */ +#ifdef GL_SGIX_quad_mesh + if (glewExperimental || GLEW_SGIX_quad_mesh) GLEW_SGIX_quad_mesh = !_glewInit_GL_SGIX_quad_mesh(); +#endif /* GL_SGIX_quad_mesh */ #ifdef GL_SGIX_reference_plane - GLEW_SGIX_reference_plane = _glewSearchExtension("GL_SGIX_reference_plane", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane(); #endif /* GL_SGIX_reference_plane */ -#ifdef GL_SGIX_resample - GLEW_SGIX_resample = _glewSearchExtension("GL_SGIX_resample", extStart, extEnd); -#endif /* GL_SGIX_resample */ -#ifdef GL_SGIX_shadow - GLEW_SGIX_shadow = _glewSearchExtension("GL_SGIX_shadow", extStart, extEnd); -#endif /* GL_SGIX_shadow */ -#ifdef GL_SGIX_shadow_ambient - GLEW_SGIX_shadow_ambient = _glewSearchExtension("GL_SGIX_shadow_ambient", extStart, extEnd); -#endif /* GL_SGIX_shadow_ambient */ #ifdef GL_SGIX_sprite - GLEW_SGIX_sprite = _glewSearchExtension("GL_SGIX_sprite", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite(); #endif /* GL_SGIX_sprite */ #ifdef GL_SGIX_tag_sample_buffer - GLEW_SGIX_tag_sample_buffer = _glewSearchExtension("GL_SGIX_tag_sample_buffer", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer(); #endif /* GL_SGIX_tag_sample_buffer */ -#ifdef GL_SGIX_texture_add_env - GLEW_SGIX_texture_add_env = _glewSearchExtension("GL_SGIX_texture_add_env", extStart, extEnd); -#endif /* GL_SGIX_texture_add_env */ -#ifdef GL_SGIX_texture_coordinate_clamp - GLEW_SGIX_texture_coordinate_clamp = _glewSearchExtension("GL_SGIX_texture_coordinate_clamp", extStart, extEnd); -#endif /* GL_SGIX_texture_coordinate_clamp */ -#ifdef GL_SGIX_texture_lod_bias - GLEW_SGIX_texture_lod_bias = _glewSearchExtension("GL_SGIX_texture_lod_bias", extStart, extEnd); -#endif /* GL_SGIX_texture_lod_bias */ -#ifdef GL_SGIX_texture_multi_buffer - GLEW_SGIX_texture_multi_buffer = _glewSearchExtension("GL_SGIX_texture_multi_buffer", extStart, extEnd); -#endif /* GL_SGIX_texture_multi_buffer */ -#ifdef GL_SGIX_texture_range - GLEW_SGIX_texture_range = _glewSearchExtension("GL_SGIX_texture_range", extStart, extEnd); -#endif /* GL_SGIX_texture_range */ -#ifdef GL_SGIX_texture_scale_bias - GLEW_SGIX_texture_scale_bias = _glewSearchExtension("GL_SGIX_texture_scale_bias", extStart, extEnd); -#endif /* GL_SGIX_texture_scale_bias */ -#ifdef GL_SGIX_vertex_preclip - GLEW_SGIX_vertex_preclip = _glewSearchExtension("GL_SGIX_vertex_preclip", extStart, extEnd); -#endif /* GL_SGIX_vertex_preclip */ -#ifdef GL_SGIX_vertex_preclip_hint - GLEW_SGIX_vertex_preclip_hint = _glewSearchExtension("GL_SGIX_vertex_preclip_hint", extStart, extEnd); -#endif /* GL_SGIX_vertex_preclip_hint */ -#ifdef GL_SGIX_ycrcb - GLEW_SGIX_ycrcb = _glewSearchExtension("GL_SGIX_ycrcb", extStart, extEnd); -#endif /* GL_SGIX_ycrcb */ -#ifdef GL_SGI_color_matrix - GLEW_SGI_color_matrix = _glewSearchExtension("GL_SGI_color_matrix", extStart, extEnd); -#endif /* GL_SGI_color_matrix */ +#ifdef GL_SGIX_vector_ops + if (glewExperimental || GLEW_SGIX_vector_ops) GLEW_SGIX_vector_ops = !_glewInit_GL_SGIX_vector_ops(); +#endif /* GL_SGIX_vector_ops */ +#ifdef GL_SGIX_vertex_array_object + if (glewExperimental || GLEW_SGIX_vertex_array_object) GLEW_SGIX_vertex_array_object = !_glewInit_GL_SGIX_vertex_array_object(); +#endif /* GL_SGIX_vertex_array_object */ #ifdef GL_SGI_color_table - GLEW_SGI_color_table = _glewSearchExtension("GL_SGI_color_table", extStart, extEnd); - if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table(); #endif /* GL_SGI_color_table */ -#ifdef GL_SGI_texture_color_table - GLEW_SGI_texture_color_table = _glewSearchExtension("GL_SGI_texture_color_table", extStart, extEnd); -#endif /* GL_SGI_texture_color_table */ +#ifdef GL_SGI_fft + if (glewExperimental || GLEW_SGI_fft) GLEW_SGI_fft = !_glewInit_GL_SGI_fft(); +#endif /* GL_SGI_fft */ #ifdef GL_SUNX_constant_data - GLEW_SUNX_constant_data = _glewSearchExtension("GL_SUNX_constant_data", extStart, extEnd); - if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data(); #endif /* GL_SUNX_constant_data */ -#ifdef GL_SUN_convolution_border_modes - GLEW_SUN_convolution_border_modes = _glewSearchExtension("GL_SUN_convolution_border_modes", extStart, extEnd); -#endif /* GL_SUN_convolution_border_modes */ #ifdef GL_SUN_global_alpha - GLEW_SUN_global_alpha = _glewSearchExtension("GL_SUN_global_alpha", extStart, extEnd); - if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha(); #endif /* GL_SUN_global_alpha */ -#ifdef GL_SUN_mesh_array - GLEW_SUN_mesh_array = _glewSearchExtension("GL_SUN_mesh_array", extStart, extEnd); -#endif /* GL_SUN_mesh_array */ #ifdef GL_SUN_read_video_pixels - GLEW_SUN_read_video_pixels = _glewSearchExtension("GL_SUN_read_video_pixels", extStart, extEnd); - if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels(); #endif /* GL_SUN_read_video_pixels */ -#ifdef GL_SUN_slice_accum - GLEW_SUN_slice_accum = _glewSearchExtension("GL_SUN_slice_accum", extStart, extEnd); -#endif /* GL_SUN_slice_accum */ #ifdef GL_SUN_triangle_list - GLEW_SUN_triangle_list = _glewSearchExtension("GL_SUN_triangle_list", extStart, extEnd); - if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list(); #endif /* GL_SUN_triangle_list */ #ifdef GL_SUN_vertex - GLEW_SUN_vertex = _glewSearchExtension("GL_SUN_vertex", extStart, extEnd); - if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex(); #endif /* GL_SUN_vertex */ -#ifdef GL_WIN_phong_shading - GLEW_WIN_phong_shading = _glewSearchExtension("GL_WIN_phong_shading", extStart, extEnd); -#endif /* GL_WIN_phong_shading */ -#ifdef GL_WIN_specular_fog - GLEW_WIN_specular_fog = _glewSearchExtension("GL_WIN_specular_fog", extStart, extEnd); -#endif /* GL_WIN_specular_fog */ #ifdef GL_WIN_swap_hint - GLEW_WIN_swap_hint = _glewSearchExtension("GL_WIN_swap_hint", extStart, extEnd); - if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint(); #endif /* GL_WIN_swap_hint */ +#ifdef GL_NV_fragment_program4 + GLEW_NV_fragment_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_fragment_program4 */ +#ifdef GL_NV_geometry_program4 + GLEW_NV_geometry_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_geometry_program4 */ +#ifdef GL_NV_tessellation_program5 + GLEW_NV_tessellation_program5 = GLEW_NV_gpu_program5; +#endif /* GL_NV_tessellation_program5 */ +#ifdef GL_NV_vertex_program4 + GLEW_NV_vertex_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_vertex_program4 */ return GLEW_OK; } -#if defined(_WIN32) +#if defined(GLEW_OSMESA) -#if !defined(GLEW_MX) +#elif defined(GLEW_EGL) + +PFNEGLCHOOSECONFIGPROC __eglewChooseConfig = NULL; +PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers = NULL; +PFNEGLCREATECONTEXTPROC __eglewCreateContext = NULL; +PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface = NULL; +PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface = NULL; +PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface = NULL; +PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext = NULL; +PFNEGLDESTROYSURFACEPROC __eglewDestroySurface = NULL; +PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib = NULL; +PFNEGLGETCONFIGSPROC __eglewGetConfigs = NULL; +PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay = NULL; +PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface = NULL; +PFNEGLGETDISPLAYPROC __eglewGetDisplay = NULL; +PFNEGLGETERRORPROC __eglewGetError = NULL; +PFNEGLINITIALIZEPROC __eglewInitialize = NULL; +PFNEGLMAKECURRENTPROC __eglewMakeCurrent = NULL; +PFNEGLQUERYCONTEXTPROC __eglewQueryContext = NULL; +PFNEGLQUERYSTRINGPROC __eglewQueryString = NULL; +PFNEGLQUERYSURFACEPROC __eglewQuerySurface = NULL; +PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers = NULL; +PFNEGLTERMINATEPROC __eglewTerminate = NULL; +PFNEGLWAITGLPROC __eglewWaitGL = NULL; +PFNEGLWAITNATIVEPROC __eglewWaitNative = NULL; + +PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage = NULL; +PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage = NULL; +PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib = NULL; +PFNEGLSWAPINTERVALPROC __eglewSwapInterval = NULL; + +PFNEGLBINDAPIPROC __eglewBindAPI = NULL; +PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer = NULL; +PFNEGLQUERYAPIPROC __eglewQueryAPI = NULL; +PFNEGLRELEASETHREADPROC __eglewReleaseThread = NULL; +PFNEGLWAITCLIENTPROC __eglewWaitClient = NULL; + +PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext = NULL; + +PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync = NULL; +PFNEGLCREATEIMAGEPROC __eglewCreateImage = NULL; +PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface = NULL; +PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface = NULL; +PFNEGLCREATESYNCPROC __eglewCreateSync = NULL; +PFNEGLDESTROYIMAGEPROC __eglewDestroyImage = NULL; +PFNEGLDESTROYSYNCPROC __eglewDestroySync = NULL; +PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay = NULL; +PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib = NULL; +PFNEGLWAITSYNCPROC __eglewWaitSync = NULL; + +PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID = NULL; + +PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID = NULL; + +PFNEGLGETCOMPOSITORTIMINGANDROIDPROC __eglewGetCompositorTimingANDROID = NULL; +PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC __eglewGetCompositorTimingSupportedANDROID = NULL; +PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC __eglewGetFrameTimestampSupportedANDROID = NULL; +PFNEGLGETFRAMETIMESTAMPSANDROIDPROC __eglewGetFrameTimestampsANDROID = NULL; +PFNEGLGETNEXTFRAMEIDANDROIDPROC __eglewGetNextFrameIdANDROID = NULL; + +PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC __eglewGetNativeClientBufferANDROID = NULL; + +PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID = NULL; + +PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID = NULL; + +PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE = NULL; + +PFNEGLCLIENTSIGNALSYNCEXTPROC __eglewClientSignalSyncEXT = NULL; + +PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC __eglewCompositorBindTexWindowEXT = NULL; +PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC __eglewCompositorSetContextAttributesEXT = NULL; +PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC __eglewCompositorSetContextListEXT = NULL; +PFNEGLCOMPOSITORSETSIZEEXTPROC __eglewCompositorSetSizeEXT = NULL; +PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC __eglewCompositorSetWindowAttributesEXT = NULL; +PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC __eglewCompositorSetWindowListEXT = NULL; +PFNEGLCOMPOSITORSWAPPOLICYEXTPROC __eglewCompositorSwapPolicyEXT = NULL; + +PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT = NULL; + +PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT = NULL; +PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT = NULL; +PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT = NULL; + +PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT = NULL; +PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT = NULL; + +PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT = NULL; +PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT = NULL; +PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT = NULL; +PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT = NULL; +PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT = NULL; +PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT = NULL; +PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT = NULL; +PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT = NULL; + +PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT = NULL; +PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT = NULL; +PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT = NULL; + +PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT = NULL; + +PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT = NULL; + +PFNEGLUNSIGNALSYNCEXTPROC __eglewUnsignalSyncEXT = NULL; + +PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI = NULL; + +PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR = NULL; + +PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR = NULL; +PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR = NULL; +PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR = NULL; + +PFNEGLQUERYDISPLAYATTRIBKHRPROC __eglewQueryDisplayAttribKHR = NULL; + +PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR = NULL; +PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR = NULL; + +PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR = NULL; +PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR = NULL; + +PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR = NULL; + +PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR = NULL; + +PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR = NULL; +PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR = NULL; +PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR = NULL; +PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR = NULL; +PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR = NULL; + +PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR = NULL; +PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR = NULL; +PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR = NULL; +PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR = NULL; +PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR = NULL; + +PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR = NULL; +PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR = NULL; +PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR = NULL; +PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR = NULL; +PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR = NULL; + +PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR = NULL; +PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR = NULL; +PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR = NULL; + +PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR = NULL; +PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR = NULL; + +PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR = NULL; + +PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR = NULL; + +PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR = NULL; + +PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR = NULL; + +PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA = NULL; +PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA = NULL; + +PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA = NULL; +PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA = NULL; + +PFNEGLGETDISPLAYDRIVERCONFIGPROC __eglewGetDisplayDriverConfig = NULL; +PFNEGLGETDISPLAYDRIVERNAMEPROC __eglewGetDisplayDriverName = NULL; + +PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK = NULL; + +PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK = NULL; + +PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV = NULL; +PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV = NULL; +PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV = NULL; + +PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV = NULL; + +PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV = NULL; + +PFNEGLSTREAMFLUSHNVPROC __eglewStreamFlushNV = NULL; + +PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV = NULL; +PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV = NULL; +PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV = NULL; + +PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV = NULL; + +PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV = NULL; + +PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV = NULL; +PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV = NULL; +PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV = NULL; +PFNEGLFENCENVPROC __eglewFenceNV = NULL; +PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV = NULL; +PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV = NULL; + +PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV = NULL; +PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV = NULL; + +PFNEGLBINDWAYLANDDISPLAYWLPROC __eglewBindWaylandDisplayWL = NULL; +PFNEGLQUERYWAYLANDBUFFERWLPROC __eglewQueryWaylandBufferWL = NULL; +PFNEGLUNBINDWAYLANDDISPLAYWLPROC __eglewUnbindWaylandDisplayWL = NULL; + +PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC __eglewCreateWaylandBufferFromImageWL = NULL; +GLboolean __EGLEW_VERSION_1_0 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_1 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_2 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_3 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_4 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_5 = GL_FALSE; +GLboolean __EGLEW_ANDROID_GLES_layers = GL_FALSE; +GLboolean __EGLEW_ANDROID_blob_cache = GL_FALSE; +GLboolean __EGLEW_ANDROID_create_native_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_framebuffer_target = GL_FALSE; +GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh = GL_FALSE; +GLboolean __EGLEW_ANDROID_get_frame_timestamps = GL_FALSE; +GLboolean __EGLEW_ANDROID_get_native_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_image_native_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_native_fence_sync = GL_FALSE; +GLboolean __EGLEW_ANDROID_presentation_time = GL_FALSE; +GLboolean __EGLEW_ANDROID_recordable = GL_FALSE; +GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANGLE_device_d3d = GL_FALSE; +GLboolean __EGLEW_ANGLE_query_surface_pointer = GL_FALSE; +GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = GL_FALSE; +GLboolean __EGLEW_ANGLE_window_fixed_size = GL_FALSE; +GLboolean __EGLEW_ARM_image_format = GL_FALSE; +GLboolean __EGLEW_ARM_implicit_external_sync = GL_FALSE; +GLboolean __EGLEW_ARM_pixmap_multisample_discard = GL_FALSE; +GLboolean __EGLEW_EXT_bind_to_front = GL_FALSE; +GLboolean __EGLEW_EXT_buffer_age = GL_FALSE; +GLboolean __EGLEW_EXT_client_extensions = GL_FALSE; +GLboolean __EGLEW_EXT_client_sync = GL_FALSE; +GLboolean __EGLEW_EXT_compositor = GL_FALSE; +GLboolean __EGLEW_EXT_create_context_robustness = GL_FALSE; +GLboolean __EGLEW_EXT_device_base = GL_FALSE; +GLboolean __EGLEW_EXT_device_drm = GL_FALSE; +GLboolean __EGLEW_EXT_device_enumeration = GL_FALSE; +GLboolean __EGLEW_EXT_device_openwf = GL_FALSE; +GLboolean __EGLEW_EXT_device_query = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3 = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3_linear = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3_passthrough = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_scrgb = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear = GL_FALSE; +GLboolean __EGLEW_EXT_image_dma_buf_import = GL_FALSE; +GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers = GL_FALSE; +GLboolean __EGLEW_EXT_image_gl_colorspace = GL_FALSE; +GLboolean __EGLEW_EXT_image_implicit_sync_control = GL_FALSE; +GLboolean __EGLEW_EXT_multiview_window = GL_FALSE; +GLboolean __EGLEW_EXT_output_base = GL_FALSE; +GLboolean __EGLEW_EXT_output_drm = GL_FALSE; +GLboolean __EGLEW_EXT_output_openwf = GL_FALSE; +GLboolean __EGLEW_EXT_pixel_format_float = GL_FALSE; +GLboolean __EGLEW_EXT_platform_base = GL_FALSE; +GLboolean __EGLEW_EXT_platform_device = GL_FALSE; +GLboolean __EGLEW_EXT_platform_wayland = GL_FALSE; +GLboolean __EGLEW_EXT_platform_x11 = GL_FALSE; +GLboolean __EGLEW_EXT_protected_content = GL_FALSE; +GLboolean __EGLEW_EXT_protected_surface = GL_FALSE; +GLboolean __EGLEW_EXT_stream_consumer_egloutput = GL_FALSE; +GLboolean __EGLEW_EXT_surface_CTA861_3_metadata = GL_FALSE; +GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata = GL_FALSE; +GLboolean __EGLEW_EXT_swap_buffers_with_damage = GL_FALSE; +GLboolean __EGLEW_EXT_sync_reuse = GL_FALSE; +GLboolean __EGLEW_EXT_yuv_surface = GL_FALSE; +GLboolean __EGLEW_HI_clientpixmap = GL_FALSE; +GLboolean __EGLEW_HI_colorformats = GL_FALSE; +GLboolean __EGLEW_IMG_context_priority = GL_FALSE; +GLboolean __EGLEW_IMG_image_plane_attribs = GL_FALSE; +GLboolean __EGLEW_KHR_cl_event = GL_FALSE; +GLboolean __EGLEW_KHR_cl_event2 = GL_FALSE; +GLboolean __EGLEW_KHR_client_get_all_proc_addresses = GL_FALSE; +GLboolean __EGLEW_KHR_config_attribs = GL_FALSE; +GLboolean __EGLEW_KHR_context_flush_control = GL_FALSE; +GLboolean __EGLEW_KHR_create_context = GL_FALSE; +GLboolean __EGLEW_KHR_create_context_no_error = GL_FALSE; +GLboolean __EGLEW_KHR_debug = GL_FALSE; +GLboolean __EGLEW_KHR_display_reference = GL_FALSE; +GLboolean __EGLEW_KHR_fence_sync = GL_FALSE; +GLboolean __EGLEW_KHR_get_all_proc_addresses = GL_FALSE; +GLboolean __EGLEW_KHR_gl_colorspace = GL_FALSE; +GLboolean __EGLEW_KHR_gl_renderbuffer_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_2D_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_3D_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_cubemap_image = GL_FALSE; +GLboolean __EGLEW_KHR_image = GL_FALSE; +GLboolean __EGLEW_KHR_image_base = GL_FALSE; +GLboolean __EGLEW_KHR_image_pixmap = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface2 = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface3 = GL_FALSE; +GLboolean __EGLEW_KHR_mutable_render_buffer = GL_FALSE; +GLboolean __EGLEW_KHR_no_config_context = GL_FALSE; +GLboolean __EGLEW_KHR_partial_update = GL_FALSE; +GLboolean __EGLEW_KHR_platform_android = GL_FALSE; +GLboolean __EGLEW_KHR_platform_gbm = GL_FALSE; +GLboolean __EGLEW_KHR_platform_wayland = GL_FALSE; +GLboolean __EGLEW_KHR_platform_x11 = GL_FALSE; +GLboolean __EGLEW_KHR_reusable_sync = GL_FALSE; +GLboolean __EGLEW_KHR_stream = GL_FALSE; +GLboolean __EGLEW_KHR_stream_attrib = GL_FALSE; +GLboolean __EGLEW_KHR_stream_consumer_gltexture = GL_FALSE; +GLboolean __EGLEW_KHR_stream_cross_process_fd = GL_FALSE; +GLboolean __EGLEW_KHR_stream_fifo = GL_FALSE; +GLboolean __EGLEW_KHR_stream_producer_aldatalocator = GL_FALSE; +GLboolean __EGLEW_KHR_stream_producer_eglsurface = GL_FALSE; +GLboolean __EGLEW_KHR_surfaceless_context = GL_FALSE; +GLboolean __EGLEW_KHR_swap_buffers_with_damage = GL_FALSE; +GLboolean __EGLEW_KHR_vg_parent_image = GL_FALSE; +GLboolean __EGLEW_KHR_wait_sync = GL_FALSE; +GLboolean __EGLEW_MESA_drm_image = GL_FALSE; +GLboolean __EGLEW_MESA_image_dma_buf_export = GL_FALSE; +GLboolean __EGLEW_MESA_platform_gbm = GL_FALSE; +GLboolean __EGLEW_MESA_platform_surfaceless = GL_FALSE; +GLboolean __EGLEW_MESA_query_driver = GL_FALSE; +GLboolean __EGLEW_NOK_swap_region = GL_FALSE; +GLboolean __EGLEW_NOK_swap_region2 = GL_FALSE; +GLboolean __EGLEW_NOK_texture_from_pixmap = GL_FALSE; +GLboolean __EGLEW_NV_3dvision_surface = GL_FALSE; +GLboolean __EGLEW_NV_context_priority_realtime = GL_FALSE; +GLboolean __EGLEW_NV_coverage_sample = GL_FALSE; +GLboolean __EGLEW_NV_coverage_sample_resolve = GL_FALSE; +GLboolean __EGLEW_NV_cuda_event = GL_FALSE; +GLboolean __EGLEW_NV_depth_nonlinear = GL_FALSE; +GLboolean __EGLEW_NV_device_cuda = GL_FALSE; +GLboolean __EGLEW_NV_native_query = GL_FALSE; +GLboolean __EGLEW_NV_post_convert_rounding = GL_FALSE; +GLboolean __EGLEW_NV_post_sub_buffer = GL_FALSE; +GLboolean __EGLEW_NV_quadruple_buffer = GL_FALSE; +GLboolean __EGLEW_NV_robustness_video_memory_purge = GL_FALSE; +GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_display = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_object = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_partition = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_process = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_system = GL_FALSE; +GLboolean __EGLEW_NV_stream_dma = GL_FALSE; +GLboolean __EGLEW_NV_stream_fifo_next = GL_FALSE; +GLboolean __EGLEW_NV_stream_fifo_synchronous = GL_FALSE; +GLboolean __EGLEW_NV_stream_flush = GL_FALSE; +GLboolean __EGLEW_NV_stream_frame_limits = GL_FALSE; +GLboolean __EGLEW_NV_stream_metadata = GL_FALSE; +GLboolean __EGLEW_NV_stream_origin = GL_FALSE; +GLboolean __EGLEW_NV_stream_remote = GL_FALSE; +GLboolean __EGLEW_NV_stream_reset = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket_inet = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket_unix = GL_FALSE; +GLboolean __EGLEW_NV_stream_sync = GL_FALSE; +GLboolean __EGLEW_NV_sync = GL_FALSE; +GLboolean __EGLEW_NV_system_time = GL_FALSE; +GLboolean __EGLEW_NV_triple_buffer = GL_FALSE; +GLboolean __EGLEW_TIZEN_image_native_buffer = GL_FALSE; +GLboolean __EGLEW_TIZEN_image_native_surface = GL_FALSE; +GLboolean __EGLEW_WL_bind_wayland_display = GL_FALSE; +GLboolean __EGLEW_WL_create_wayland_buffer_from_image = GL_FALSE; +#ifdef EGL_VERSION_1_0 + +static GLboolean _glewInit_EGL_VERSION_1_0 () +{ + GLboolean r = GL_FALSE; + + r = ((eglChooseConfig = (PFNEGLCHOOSECONFIGPROC)glewGetProcAddress((const GLubyte*)"eglChooseConfig")) == NULL) || r; + r = ((eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglCopyBuffers")) == NULL) || r; + r = ((eglCreateContext = (PFNEGLCREATECONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreateContext")) == NULL) || r; + r = ((eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferSurface")) == NULL) || r; + r = ((eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurface")) == NULL) || r; + r = ((eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreateWindowSurface")) == NULL) || r; + r = ((eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglDestroyContext")) == NULL) || r; + r = ((eglDestroySurface = (PFNEGLDESTROYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglDestroySurface")) == NULL) || r; + r = ((eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigAttrib")) == NULL) || r; + r = ((eglGetConfigs = (PFNEGLGETCONFIGSPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigs")) == NULL) || r; + r = ((eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentDisplay")) == NULL) || r; + r = ((eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentSurface")) == NULL) || r; + r = ((eglGetDisplay = (PFNEGLGETDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplay")) == NULL) || r; + r = ((eglGetError = (PFNEGLGETERRORPROC)glewGetProcAddress((const GLubyte*)"eglGetError")) == NULL) || r; + r = ((eglInitialize = (PFNEGLINITIALIZEPROC)glewGetProcAddress((const GLubyte*)"eglInitialize")) == NULL) || r; + r = ((eglMakeCurrent = (PFNEGLMAKECURRENTPROC)glewGetProcAddress((const GLubyte*)"eglMakeCurrent")) == NULL) || r; + r = ((eglQueryContext = (PFNEGLQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryContext")) == NULL) || r; + r = ((eglQueryString = (PFNEGLQUERYSTRINGPROC)glewGetProcAddress((const GLubyte*)"eglQueryString")) == NULL) || r; + r = ((eglQuerySurface = (PFNEGLQUERYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface")) == NULL) || r; + r = ((eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffers")) == NULL) || r; + r = ((eglTerminate = (PFNEGLTERMINATEPROC)glewGetProcAddress((const GLubyte*)"eglTerminate")) == NULL) || r; + r = ((eglWaitGL = (PFNEGLWAITGLPROC)glewGetProcAddress((const GLubyte*)"eglWaitGL")) == NULL) || r; + r = ((eglWaitNative = (PFNEGLWAITNATIVEPROC)glewGetProcAddress((const GLubyte*)"eglWaitNative")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_0 */ + +#ifdef EGL_VERSION_1_1 + +static GLboolean _glewInit_EGL_VERSION_1_1 () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglBindTexImage")) == NULL) || r; + r = ((eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglReleaseTexImage")) == NULL) || r; + r = ((eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglSurfaceAttrib")) == NULL) || r; + r = ((eglSwapInterval = (PFNEGLSWAPINTERVALPROC)glewGetProcAddress((const GLubyte*)"eglSwapInterval")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_1 */ + +#ifdef EGL_VERSION_1_2 + +static GLboolean _glewInit_EGL_VERSION_1_2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindAPI = (PFNEGLBINDAPIPROC)glewGetProcAddress((const GLubyte*)"eglBindAPI")) == NULL) || r; + r = ((eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferFromClientBuffer")) == NULL) || r; + r = ((eglQueryAPI = (PFNEGLQUERYAPIPROC)glewGetProcAddress((const GLubyte*)"eglQueryAPI")) == NULL) || r; + r = ((eglReleaseThread = (PFNEGLRELEASETHREADPROC)glewGetProcAddress((const GLubyte*)"eglReleaseThread")) == NULL) || r; + r = ((eglWaitClient = (PFNEGLWAITCLIENTPROC)glewGetProcAddress((const GLubyte*)"eglWaitClient")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_2 */ + +#ifdef EGL_VERSION_1_4 + +static GLboolean _glewInit_EGL_VERSION_1_4 () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentContext")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_4 */ + +#ifdef EGL_VERSION_1_5 + +static GLboolean _glewInit_EGL_VERSION_1_5 () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSync")) == NULL) || r; + r = ((eglCreateImage = (PFNEGLCREATEIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglCreateImage")) == NULL) || r; + r = ((eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurface")) == NULL) || r; + r = ((eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurface")) == NULL) || r; + r = ((eglCreateSync = (PFNEGLCREATESYNCPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync")) == NULL) || r; + r = ((eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImage")) == NULL) || r; + r = ((eglDestroySync = (PFNEGLDESTROYSYNCPROC)glewGetProcAddress((const GLubyte*)"eglDestroySync")) == NULL) || r; + r = ((eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplay")) == NULL) || r; + r = ((eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttrib")) == NULL) || r; + r = ((eglWaitSync = (PFNEGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglWaitSync")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_5 */ + +#ifdef EGL_ANDROID_blob_cache + +static GLboolean _glewInit_EGL_ANDROID_blob_cache () +{ + GLboolean r = GL_FALSE; + + r = ((eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglSetBlobCacheFuncsANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_blob_cache */ + +#ifdef EGL_ANDROID_create_native_client_buffer + +static GLboolean _glewInit_EGL_ANDROID_create_native_client_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglCreateNativeClientBufferANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_create_native_client_buffer */ + +#ifdef EGL_ANDROID_get_frame_timestamps + +static GLboolean _glewInit_EGL_ANDROID_get_frame_timestamps () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetCompositorTimingANDROID = (PFNEGLGETCOMPOSITORTIMINGANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingANDROID")) == NULL) || r; + r = ((eglGetCompositorTimingSupportedANDROID = (PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingSupportedANDROID")) == NULL) || r; + r = ((eglGetFrameTimestampSupportedANDROID = (PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampSupportedANDROID")) == NULL) || r; + r = ((eglGetFrameTimestampsANDROID = (PFNEGLGETFRAMETIMESTAMPSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampsANDROID")) == NULL) || r; + r = ((eglGetNextFrameIdANDROID = (PFNEGLGETNEXTFRAMEIDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNextFrameIdANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_get_frame_timestamps */ + +#ifdef EGL_ANDROID_get_native_client_buffer + +static GLboolean _glewInit_EGL_ANDROID_get_native_client_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetNativeClientBufferANDROID = (PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNativeClientBufferANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_get_native_client_buffer */ + +#ifdef EGL_ANDROID_native_fence_sync + +static GLboolean _glewInit_EGL_ANDROID_native_fence_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglDupNativeFenceFDANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifdef EGL_ANDROID_presentation_time + +static GLboolean _glewInit_EGL_ANDROID_presentation_time () +{ + GLboolean r = GL_FALSE; + + r = ((eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglPresentationTimeANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_presentation_time */ + +#ifdef EGL_ANGLE_query_surface_pointer + +static GLboolean _glewInit_EGL_ANGLE_query_surface_pointer () +{ + GLboolean r = GL_FALSE; + + r = ((eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurfacePointerANGLE")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifdef EGL_EXT_client_sync + +static GLboolean _glewInit_EGL_EXT_client_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientSignalSyncEXT = (PFNEGLCLIENTSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglClientSignalSyncEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_client_sync */ + +#ifdef EGL_EXT_compositor + +static GLboolean _glewInit_EGL_EXT_compositor () +{ + GLboolean r = GL_FALSE; + + r = ((eglCompositorBindTexWindowEXT = (PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorBindTexWindowEXT")) == NULL) || r; + r = ((eglCompositorSetContextAttributesEXT = (PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextAttributesEXT")) == NULL) || r; + r = ((eglCompositorSetContextListEXT = (PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextListEXT")) == NULL) || r; + r = ((eglCompositorSetSizeEXT = (PFNEGLCOMPOSITORSETSIZEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetSizeEXT")) == NULL) || r; + r = ((eglCompositorSetWindowAttributesEXT = (PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowAttributesEXT")) == NULL) || r; + r = ((eglCompositorSetWindowListEXT = (PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowListEXT")) == NULL) || r; + r = ((eglCompositorSwapPolicyEXT = (PFNEGLCOMPOSITORSWAPPOLICYEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSwapPolicyEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_compositor */ + +#ifdef EGL_EXT_device_enumeration + +static GLboolean _glewInit_EGL_EXT_device_enumeration () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDevicesEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_device_enumeration */ + +#ifdef EGL_EXT_device_query + +static GLboolean _glewInit_EGL_EXT_device_query () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceAttribEXT")) == NULL) || r; + r = ((eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceStringEXT")) == NULL) || r; + r = ((eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_device_query */ + +#ifdef EGL_EXT_image_dma_buf_import_modifiers + +static GLboolean _glewInit_EGL_EXT_image_dma_buf_import_modifiers () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufFormatsEXT")) == NULL) || r; + r = ((eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufModifiersEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +#ifdef EGL_EXT_output_base + +static GLboolean _glewInit_EGL_EXT_output_base () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputLayersEXT")) == NULL) || r; + r = ((eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputPortsEXT")) == NULL) || r; + r = ((eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputLayerAttribEXT")) == NULL) || r; + r = ((eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputPortAttribEXT")) == NULL) || r; + r = ((eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerAttribEXT")) == NULL) || r; + r = ((eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerStringEXT")) == NULL) || r; + r = ((eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortAttribEXT")) == NULL) || r; + r = ((eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortStringEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_output_base */ + +#ifdef EGL_EXT_platform_base + +static GLboolean _glewInit_EGL_EXT_platform_base () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurfaceEXT")) == NULL) || r; + r = ((eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurfaceEXT")) == NULL) || r; + r = ((eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplayEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_platform_base */ + +#ifdef EGL_EXT_stream_consumer_egloutput + +static GLboolean _glewInit_EGL_EXT_stream_consumer_egloutput () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerOutputEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifdef EGL_EXT_swap_buffers_with_damage + +static GLboolean _glewInit_EGL_EXT_swap_buffers_with_damage () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifdef EGL_EXT_sync_reuse + +static GLboolean _glewInit_EGL_EXT_sync_reuse () +{ + GLboolean r = GL_FALSE; + + r = ((eglUnsignalSyncEXT = (PFNEGLUNSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglUnsignalSyncEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_sync_reuse */ + +#ifdef EGL_HI_clientpixmap + +static GLboolean _glewInit_EGL_HI_clientpixmap () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurfaceHI")) == NULL) || r; + + return r; +} + +#endif /* EGL_HI_clientpixmap */ + +#ifdef EGL_KHR_cl_event2 + +static GLboolean _glewInit_EGL_KHR_cl_event2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync64KHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_cl_event2 */ + +#ifdef EGL_KHR_debug + +static GLboolean _glewInit_EGL_KHR_debug () +{ + GLboolean r = GL_FALSE; + + r = ((eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC)glewGetProcAddress((const GLubyte*)"eglDebugMessageControlKHR")) == NULL) || r; + r = ((eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC)glewGetProcAddress((const GLubyte*)"eglLabelObjectKHR")) == NULL) || r; + r = ((eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDebugKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_debug */ + +#ifdef EGL_KHR_display_reference + +static GLboolean _glewInit_EGL_KHR_display_reference () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_display_reference */ + +#ifdef EGL_KHR_image + +static GLboolean _glewInit_EGL_KHR_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateImageKHR")) == NULL) || r; + r = ((eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImageKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_image */ + +#ifdef EGL_KHR_lock_surface + +static GLboolean _glewInit_EGL_KHR_lock_surface () +{ + GLboolean r = GL_FALSE; + + r = ((eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglLockSurfaceKHR")) == NULL) || r; + r = ((eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglUnlockSurfaceKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_lock_surface */ + +#ifdef EGL_KHR_lock_surface3 + +static GLboolean _glewInit_EGL_KHR_lock_surface3 () +{ + GLboolean r = GL_FALSE; + + r = ((eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface64KHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_lock_surface3 */ + +#ifdef EGL_KHR_partial_update + +static GLboolean _glewInit_EGL_KHR_partial_update () +{ + GLboolean r = GL_FALSE; + + r = ((eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetDamageRegionKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_partial_update */ + +#ifdef EGL_KHR_reusable_sync + +static GLboolean _glewInit_EGL_KHR_reusable_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncKHR")) == NULL) || r; + r = ((eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSyncKHR")) == NULL) || r; + r = ((eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncKHR")) == NULL) || r; + r = ((eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribKHR")) == NULL) || r; + r = ((eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_reusable_sync */ + +#ifdef EGL_KHR_stream + +static GLboolean _glewInit_EGL_KHR_stream () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamKHR")) == NULL) || r; + r = ((eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyStreamKHR")) == NULL) || r; + r = ((eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamKHR")) == NULL) || r; + r = ((eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamu64KHR")) == NULL) || r; + r = ((eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream */ + +#ifdef EGL_KHR_stream_attrib + +static GLboolean _glewInit_EGL_KHR_stream_attrib () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamAttribKHR")) == NULL) || r; + r = ((eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamAttribKHR")) == NULL) || r; + r = ((eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamAttribKHR")) == NULL) || r; + r = ((eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireAttribKHR")) == NULL) || r; + r = ((eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_attrib */ + +#ifdef EGL_KHR_stream_consumer_gltexture + +static GLboolean _glewInit_EGL_KHR_stream_consumer_gltexture () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireKHR")) == NULL) || r; + r = ((eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalKHR")) == NULL) || r; + r = ((eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifdef EGL_KHR_stream_cross_process_fd + +static GLboolean _glewInit_EGL_KHR_stream_cross_process_fd () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamFromFileDescriptorKHR")) == NULL) || r; + r = ((eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetStreamFileDescriptorKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifdef EGL_KHR_stream_fifo + +static GLboolean _glewInit_EGL_KHR_stream_fifo () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamTimeKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_fifo */ + +#ifdef EGL_KHR_stream_producer_eglsurface + +static GLboolean _glewInit_EGL_KHR_stream_producer_eglsurface () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamProducerSurfaceKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifdef EGL_KHR_swap_buffers_with_damage + +static GLboolean _glewInit_EGL_KHR_swap_buffers_with_damage () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifdef EGL_KHR_wait_sync + +static GLboolean _glewInit_EGL_KHR_wait_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglWaitSyncKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_wait_sync */ + +#ifdef EGL_MESA_drm_image + +static GLboolean _glewInit_EGL_MESA_drm_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglCreateDRMImageMESA")) == NULL) || r; + r = ((eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDRMImageMESA")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_drm_image */ + +#ifdef EGL_MESA_image_dma_buf_export + +static GLboolean _glewInit_EGL_MESA_image_dma_buf_export () +{ + GLboolean r = GL_FALSE; + + r = ((eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageMESA")) == NULL) || r; + r = ((eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageQueryMESA")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifdef EGL_MESA_query_driver + +static GLboolean _glewInit_EGL_MESA_query_driver () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetDisplayDriverConfig = (PFNEGLGETDISPLAYDRIVERCONFIGPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverConfig")) == NULL) || r; + r = ((eglGetDisplayDriverName = (PFNEGLGETDISPLAYDRIVERNAMEPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverName")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_query_driver */ + +#ifdef EGL_NOK_swap_region + +static GLboolean _glewInit_EGL_NOK_swap_region () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegionNOK")) == NULL) || r; + + return r; +} + +#endif /* EGL_NOK_swap_region */ + +#ifdef EGL_NOK_swap_region2 + +static GLboolean _glewInit_EGL_NOK_swap_region2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegion2NOK")) == NULL) || r; + + return r; +} + +#endif /* EGL_NOK_swap_region2 */ + +#ifdef EGL_NV_native_query + +static GLboolean _glewInit_EGL_NV_native_query () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeDisplayNV")) == NULL) || r; + r = ((eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativePixmapNV")) == NULL) || r; + r = ((eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeWindowNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_native_query */ + +#ifdef EGL_NV_post_sub_buffer + +static GLboolean _glewInit_EGL_NV_post_sub_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"eglPostSubBufferNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_post_sub_buffer */ + +#ifdef EGL_NV_stream_consumer_gltexture_yuv + +static GLboolean _glewInit_EGL_NV_stream_consumer_gltexture_yuv () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalAttribsNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +#ifdef EGL_NV_stream_flush + +static GLboolean _glewInit_EGL_NV_stream_flush () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamFlushNV = (PFNEGLSTREAMFLUSHNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamFlushNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_flush */ + +#ifdef EGL_NV_stream_metadata + +static GLboolean _glewInit_EGL_NV_stream_metadata () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribNV")) == NULL) || r; + r = ((eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamMetadataNV")) == NULL) || r; + r = ((eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamMetadataNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_metadata */ + +#ifdef EGL_NV_stream_reset + +static GLboolean _glewInit_EGL_NV_stream_reset () +{ + GLboolean r = GL_FALSE; + + r = ((eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC)glewGetProcAddress((const GLubyte*)"eglResetStreamNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_reset */ + +#ifdef EGL_NV_stream_sync + +static GLboolean _glewInit_EGL_NV_stream_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamSyncNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_sync */ + +#ifdef EGL_NV_sync + +static GLboolean _glewInit_EGL_NV_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncNV")) == NULL) || r; + r = ((eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateFenceSyncNV")) == NULL) || r; + r = ((eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncNV")) == NULL) || r; + r = ((eglFenceNV = (PFNEGLFENCENVPROC)glewGetProcAddress((const GLubyte*)"eglFenceNV")) == NULL) || r; + r = ((eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribNV")) == NULL) || r; + r = ((eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_sync */ + +#ifdef EGL_NV_system_time + +static GLboolean _glewInit_EGL_NV_system_time () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeFrequencyNV")) == NULL) || r; + r = ((eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_system_time */ + +#ifdef EGL_WL_bind_wayland_display + +static GLboolean _glewInit_EGL_WL_bind_wayland_display () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindWaylandDisplayWL = (PFNEGLBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglBindWaylandDisplayWL")) == NULL) || r; + r = ((eglQueryWaylandBufferWL = (PFNEGLQUERYWAYLANDBUFFERWLPROC)glewGetProcAddress((const GLubyte*)"eglQueryWaylandBufferWL")) == NULL) || r; + r = ((eglUnbindWaylandDisplayWL = (PFNEGLUNBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglUnbindWaylandDisplayWL")) == NULL) || r; + + return r; +} + +#endif /* EGL_WL_bind_wayland_display */ + +#ifdef EGL_WL_create_wayland_buffer_from_image + +static GLboolean _glewInit_EGL_WL_create_wayland_buffer_from_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC)glewGetProcAddress((const GLubyte*)"eglCreateWaylandBufferFromImageWL")) == NULL) || r; + + return r; +} + +#endif /* EGL_WL_create_wayland_buffer_from_image */ + + /* ------------------------------------------------------------------------ */ + +GLboolean eglewGetExtension (const char* name) +{ + const GLubyte* start; + const GLubyte* end; + + start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS); + if (0 == start) return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); +} + +GLenum eglewInit (EGLDisplay display) +{ + EGLint major, minor; + const GLubyte* extStart; + const GLubyte* extEnd; + PFNEGLINITIALIZEPROC initialize = NULL; + PFNEGLQUERYSTRINGPROC queryString = NULL; + + /* Load necessary entry points */ + initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize"); + queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString"); + if (!initialize || !queryString) + return 1; + + /* query EGK version */ + if (initialize(display, &major, &minor) != EGL_TRUE) + return 1; + + EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE; + + /* query EGL extension string */ + extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte *)""; + extEnd = extStart + _glewStrLen(extStart); + + /* initialize extensions */ +#ifdef EGL_VERSION_1_0 + if (glewExperimental || EGLEW_VERSION_1_0) EGLEW_VERSION_1_0 = !_glewInit_EGL_VERSION_1_0(); +#endif /* EGL_VERSION_1_0 */ +#ifdef EGL_VERSION_1_1 + if (glewExperimental || EGLEW_VERSION_1_1) EGLEW_VERSION_1_1 = !_glewInit_EGL_VERSION_1_1(); +#endif /* EGL_VERSION_1_1 */ +#ifdef EGL_VERSION_1_2 + if (glewExperimental || EGLEW_VERSION_1_2) EGLEW_VERSION_1_2 = !_glewInit_EGL_VERSION_1_2(); +#endif /* EGL_VERSION_1_2 */ +#ifdef EGL_VERSION_1_4 + if (glewExperimental || EGLEW_VERSION_1_4) EGLEW_VERSION_1_4 = !_glewInit_EGL_VERSION_1_4(); +#endif /* EGL_VERSION_1_4 */ +#ifdef EGL_VERSION_1_5 + if (glewExperimental || EGLEW_VERSION_1_5) EGLEW_VERSION_1_5 = !_glewInit_EGL_VERSION_1_5(); +#endif /* EGL_VERSION_1_5 */ +#ifdef EGL_ANDROID_GLES_layers + EGLEW_ANDROID_GLES_layers = _glewSearchExtension("EGL_ANDROID_GLES_layers", extStart, extEnd); +#endif /* EGL_ANDROID_GLES_layers */ +#ifdef EGL_ANDROID_blob_cache + EGLEW_ANDROID_blob_cache = _glewSearchExtension("EGL_ANDROID_blob_cache", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_blob_cache) EGLEW_ANDROID_blob_cache = !_glewInit_EGL_ANDROID_blob_cache(); +#endif /* EGL_ANDROID_blob_cache */ +#ifdef EGL_ANDROID_create_native_client_buffer + EGLEW_ANDROID_create_native_client_buffer = _glewSearchExtension("EGL_ANDROID_create_native_client_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_create_native_client_buffer) EGLEW_ANDROID_create_native_client_buffer = !_glewInit_EGL_ANDROID_create_native_client_buffer(); +#endif /* EGL_ANDROID_create_native_client_buffer */ +#ifdef EGL_ANDROID_framebuffer_target + EGLEW_ANDROID_framebuffer_target = _glewSearchExtension("EGL_ANDROID_framebuffer_target", extStart, extEnd); +#endif /* EGL_ANDROID_framebuffer_target */ +#ifdef EGL_ANDROID_front_buffer_auto_refresh + EGLEW_ANDROID_front_buffer_auto_refresh = _glewSearchExtension("EGL_ANDROID_front_buffer_auto_refresh", extStart, extEnd); +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ +#ifdef EGL_ANDROID_get_frame_timestamps + EGLEW_ANDROID_get_frame_timestamps = _glewSearchExtension("EGL_ANDROID_get_frame_timestamps", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_get_frame_timestamps) EGLEW_ANDROID_get_frame_timestamps = !_glewInit_EGL_ANDROID_get_frame_timestamps(); +#endif /* EGL_ANDROID_get_frame_timestamps */ +#ifdef EGL_ANDROID_get_native_client_buffer + EGLEW_ANDROID_get_native_client_buffer = _glewSearchExtension("EGL_ANDROID_get_native_client_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_get_native_client_buffer) EGLEW_ANDROID_get_native_client_buffer = !_glewInit_EGL_ANDROID_get_native_client_buffer(); +#endif /* EGL_ANDROID_get_native_client_buffer */ +#ifdef EGL_ANDROID_image_native_buffer + EGLEW_ANDROID_image_native_buffer = _glewSearchExtension("EGL_ANDROID_image_native_buffer", extStart, extEnd); +#endif /* EGL_ANDROID_image_native_buffer */ +#ifdef EGL_ANDROID_native_fence_sync + EGLEW_ANDROID_native_fence_sync = _glewSearchExtension("EGL_ANDROID_native_fence_sync", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_native_fence_sync) EGLEW_ANDROID_native_fence_sync = !_glewInit_EGL_ANDROID_native_fence_sync(); +#endif /* EGL_ANDROID_native_fence_sync */ +#ifdef EGL_ANDROID_presentation_time + EGLEW_ANDROID_presentation_time = _glewSearchExtension("EGL_ANDROID_presentation_time", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_presentation_time) EGLEW_ANDROID_presentation_time = !_glewInit_EGL_ANDROID_presentation_time(); +#endif /* EGL_ANDROID_presentation_time */ +#ifdef EGL_ANDROID_recordable + EGLEW_ANDROID_recordable = _glewSearchExtension("EGL_ANDROID_recordable", extStart, extEnd); +#endif /* EGL_ANDROID_recordable */ +#ifdef EGL_ANGLE_d3d_share_handle_client_buffer + EGLEW_ANGLE_d3d_share_handle_client_buffer = _glewSearchExtension("EGL_ANGLE_d3d_share_handle_client_buffer", extStart, extEnd); +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ +#ifdef EGL_ANGLE_device_d3d + EGLEW_ANGLE_device_d3d = _glewSearchExtension("EGL_ANGLE_device_d3d", extStart, extEnd); +#endif /* EGL_ANGLE_device_d3d */ +#ifdef EGL_ANGLE_query_surface_pointer + EGLEW_ANGLE_query_surface_pointer = _glewSearchExtension("EGL_ANGLE_query_surface_pointer", extStart, extEnd); + if (glewExperimental || EGLEW_ANGLE_query_surface_pointer) EGLEW_ANGLE_query_surface_pointer = !_glewInit_EGL_ANGLE_query_surface_pointer(); +#endif /* EGL_ANGLE_query_surface_pointer */ +#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle + EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = _glewSearchExtension("EGL_ANGLE_surface_d3d_texture_2d_share_handle", extStart, extEnd); +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ +#ifdef EGL_ANGLE_window_fixed_size + EGLEW_ANGLE_window_fixed_size = _glewSearchExtension("EGL_ANGLE_window_fixed_size", extStart, extEnd); +#endif /* EGL_ANGLE_window_fixed_size */ +#ifdef EGL_ARM_image_format + EGLEW_ARM_image_format = _glewSearchExtension("EGL_ARM_image_format", extStart, extEnd); +#endif /* EGL_ARM_image_format */ +#ifdef EGL_ARM_implicit_external_sync + EGLEW_ARM_implicit_external_sync = _glewSearchExtension("EGL_ARM_implicit_external_sync", extStart, extEnd); +#endif /* EGL_ARM_implicit_external_sync */ +#ifdef EGL_ARM_pixmap_multisample_discard + EGLEW_ARM_pixmap_multisample_discard = _glewSearchExtension("EGL_ARM_pixmap_multisample_discard", extStart, extEnd); +#endif /* EGL_ARM_pixmap_multisample_discard */ +#ifdef EGL_EXT_bind_to_front + EGLEW_EXT_bind_to_front = _glewSearchExtension("EGL_EXT_bind_to_front", extStart, extEnd); +#endif /* EGL_EXT_bind_to_front */ +#ifdef EGL_EXT_buffer_age + EGLEW_EXT_buffer_age = _glewSearchExtension("EGL_EXT_buffer_age", extStart, extEnd); +#endif /* EGL_EXT_buffer_age */ +#ifdef EGL_EXT_client_extensions + EGLEW_EXT_client_extensions = _glewSearchExtension("EGL_EXT_client_extensions", extStart, extEnd); +#endif /* EGL_EXT_client_extensions */ +#ifdef EGL_EXT_client_sync + EGLEW_EXT_client_sync = _glewSearchExtension("EGL_EXT_client_sync", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_client_sync) EGLEW_EXT_client_sync = !_glewInit_EGL_EXT_client_sync(); +#endif /* EGL_EXT_client_sync */ +#ifdef EGL_EXT_compositor + EGLEW_EXT_compositor = _glewSearchExtension("EGL_EXT_compositor", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_compositor) EGLEW_EXT_compositor = !_glewInit_EGL_EXT_compositor(); +#endif /* EGL_EXT_compositor */ +#ifdef EGL_EXT_create_context_robustness + EGLEW_EXT_create_context_robustness = _glewSearchExtension("EGL_EXT_create_context_robustness", extStart, extEnd); +#endif /* EGL_EXT_create_context_robustness */ +#ifdef EGL_EXT_device_base + EGLEW_EXT_device_base = _glewSearchExtension("EGL_EXT_device_base", extStart, extEnd); +#endif /* EGL_EXT_device_base */ +#ifdef EGL_EXT_device_drm + EGLEW_EXT_device_drm = _glewSearchExtension("EGL_EXT_device_drm", extStart, extEnd); +#endif /* EGL_EXT_device_drm */ +#ifdef EGL_EXT_device_enumeration + EGLEW_EXT_device_enumeration = _glewSearchExtension("EGL_EXT_device_enumeration", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_device_enumeration) EGLEW_EXT_device_enumeration = !_glewInit_EGL_EXT_device_enumeration(); +#endif /* EGL_EXT_device_enumeration */ +#ifdef EGL_EXT_device_openwf + EGLEW_EXT_device_openwf = _glewSearchExtension("EGL_EXT_device_openwf", extStart, extEnd); +#endif /* EGL_EXT_device_openwf */ +#ifdef EGL_EXT_device_query + EGLEW_EXT_device_query = _glewSearchExtension("EGL_EXT_device_query", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_device_query) EGLEW_EXT_device_query = !_glewInit_EGL_EXT_device_query(); +#endif /* EGL_EXT_device_query */ +#ifdef EGL_EXT_gl_colorspace_bt2020_linear + EGLEW_EXT_gl_colorspace_bt2020_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ +#ifdef EGL_EXT_gl_colorspace_bt2020_pq + EGLEW_EXT_gl_colorspace_bt2020_pq = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_pq", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ +#ifdef EGL_EXT_gl_colorspace_display_p3 + EGLEW_EXT_gl_colorspace_display_p3 = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3 */ +#ifdef EGL_EXT_gl_colorspace_display_p3_linear + EGLEW_EXT_gl_colorspace_display_p3_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ +#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough + EGLEW_EXT_gl_colorspace_display_p3_passthrough = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_passthrough", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ +#ifdef EGL_EXT_gl_colorspace_scrgb + EGLEW_EXT_gl_colorspace_scrgb = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_scrgb */ +#ifdef EGL_EXT_gl_colorspace_scrgb_linear + EGLEW_EXT_gl_colorspace_scrgb_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ +#ifdef EGL_EXT_image_dma_buf_import + EGLEW_EXT_image_dma_buf_import = _glewSearchExtension("EGL_EXT_image_dma_buf_import", extStart, extEnd); +#endif /* EGL_EXT_image_dma_buf_import */ +#ifdef EGL_EXT_image_dma_buf_import_modifiers + EGLEW_EXT_image_dma_buf_import_modifiers = _glewSearchExtension("EGL_EXT_image_dma_buf_import_modifiers", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_image_dma_buf_import_modifiers) EGLEW_EXT_image_dma_buf_import_modifiers = !_glewInit_EGL_EXT_image_dma_buf_import_modifiers(); +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ +#ifdef EGL_EXT_image_gl_colorspace + EGLEW_EXT_image_gl_colorspace = _glewSearchExtension("EGL_EXT_image_gl_colorspace", extStart, extEnd); +#endif /* EGL_EXT_image_gl_colorspace */ +#ifdef EGL_EXT_image_implicit_sync_control + EGLEW_EXT_image_implicit_sync_control = _glewSearchExtension("EGL_EXT_image_implicit_sync_control", extStart, extEnd); +#endif /* EGL_EXT_image_implicit_sync_control */ +#ifdef EGL_EXT_multiview_window + EGLEW_EXT_multiview_window = _glewSearchExtension("EGL_EXT_multiview_window", extStart, extEnd); +#endif /* EGL_EXT_multiview_window */ +#ifdef EGL_EXT_output_base + EGLEW_EXT_output_base = _glewSearchExtension("EGL_EXT_output_base", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_output_base) EGLEW_EXT_output_base = !_glewInit_EGL_EXT_output_base(); +#endif /* EGL_EXT_output_base */ +#ifdef EGL_EXT_output_drm + EGLEW_EXT_output_drm = _glewSearchExtension("EGL_EXT_output_drm", extStart, extEnd); +#endif /* EGL_EXT_output_drm */ +#ifdef EGL_EXT_output_openwf + EGLEW_EXT_output_openwf = _glewSearchExtension("EGL_EXT_output_openwf", extStart, extEnd); +#endif /* EGL_EXT_output_openwf */ +#ifdef EGL_EXT_pixel_format_float + EGLEW_EXT_pixel_format_float = _glewSearchExtension("EGL_EXT_pixel_format_float", extStart, extEnd); +#endif /* EGL_EXT_pixel_format_float */ +#ifdef EGL_EXT_platform_base + EGLEW_EXT_platform_base = _glewSearchExtension("EGL_EXT_platform_base", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_platform_base) EGLEW_EXT_platform_base = !_glewInit_EGL_EXT_platform_base(); +#endif /* EGL_EXT_platform_base */ +#ifdef EGL_EXT_platform_device + EGLEW_EXT_platform_device = _glewSearchExtension("EGL_EXT_platform_device", extStart, extEnd); +#endif /* EGL_EXT_platform_device */ +#ifdef EGL_EXT_platform_wayland + EGLEW_EXT_platform_wayland = _glewSearchExtension("EGL_EXT_platform_wayland", extStart, extEnd); +#endif /* EGL_EXT_platform_wayland */ +#ifdef EGL_EXT_platform_x11 + EGLEW_EXT_platform_x11 = _glewSearchExtension("EGL_EXT_platform_x11", extStart, extEnd); +#endif /* EGL_EXT_platform_x11 */ +#ifdef EGL_EXT_protected_content + EGLEW_EXT_protected_content = _glewSearchExtension("EGL_EXT_protected_content", extStart, extEnd); +#endif /* EGL_EXT_protected_content */ +#ifdef EGL_EXT_protected_surface + EGLEW_EXT_protected_surface = _glewSearchExtension("EGL_EXT_protected_surface", extStart, extEnd); +#endif /* EGL_EXT_protected_surface */ +#ifdef EGL_EXT_stream_consumer_egloutput + EGLEW_EXT_stream_consumer_egloutput = _glewSearchExtension("EGL_EXT_stream_consumer_egloutput", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_stream_consumer_egloutput) EGLEW_EXT_stream_consumer_egloutput = !_glewInit_EGL_EXT_stream_consumer_egloutput(); +#endif /* EGL_EXT_stream_consumer_egloutput */ +#ifdef EGL_EXT_surface_CTA861_3_metadata + EGLEW_EXT_surface_CTA861_3_metadata = _glewSearchExtension("EGL_EXT_surface_CTA861_3_metadata", extStart, extEnd); +#endif /* EGL_EXT_surface_CTA861_3_metadata */ +#ifdef EGL_EXT_surface_SMPTE2086_metadata + EGLEW_EXT_surface_SMPTE2086_metadata = _glewSearchExtension("EGL_EXT_surface_SMPTE2086_metadata", extStart, extEnd); +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ +#ifdef EGL_EXT_swap_buffers_with_damage + EGLEW_EXT_swap_buffers_with_damage = _glewSearchExtension("EGL_EXT_swap_buffers_with_damage", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_swap_buffers_with_damage) EGLEW_EXT_swap_buffers_with_damage = !_glewInit_EGL_EXT_swap_buffers_with_damage(); +#endif /* EGL_EXT_swap_buffers_with_damage */ +#ifdef EGL_EXT_sync_reuse + EGLEW_EXT_sync_reuse = _glewSearchExtension("EGL_EXT_sync_reuse", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_sync_reuse) EGLEW_EXT_sync_reuse = !_glewInit_EGL_EXT_sync_reuse(); +#endif /* EGL_EXT_sync_reuse */ +#ifdef EGL_EXT_yuv_surface + EGLEW_EXT_yuv_surface = _glewSearchExtension("EGL_EXT_yuv_surface", extStart, extEnd); +#endif /* EGL_EXT_yuv_surface */ +#ifdef EGL_HI_clientpixmap + EGLEW_HI_clientpixmap = _glewSearchExtension("EGL_HI_clientpixmap", extStart, extEnd); + if (glewExperimental || EGLEW_HI_clientpixmap) EGLEW_HI_clientpixmap = !_glewInit_EGL_HI_clientpixmap(); +#endif /* EGL_HI_clientpixmap */ +#ifdef EGL_HI_colorformats + EGLEW_HI_colorformats = _glewSearchExtension("EGL_HI_colorformats", extStart, extEnd); +#endif /* EGL_HI_colorformats */ +#ifdef EGL_IMG_context_priority + EGLEW_IMG_context_priority = _glewSearchExtension("EGL_IMG_context_priority", extStart, extEnd); +#endif /* EGL_IMG_context_priority */ +#ifdef EGL_IMG_image_plane_attribs + EGLEW_IMG_image_plane_attribs = _glewSearchExtension("EGL_IMG_image_plane_attribs", extStart, extEnd); +#endif /* EGL_IMG_image_plane_attribs */ +#ifdef EGL_KHR_cl_event + EGLEW_KHR_cl_event = _glewSearchExtension("EGL_KHR_cl_event", extStart, extEnd); +#endif /* EGL_KHR_cl_event */ +#ifdef EGL_KHR_cl_event2 + EGLEW_KHR_cl_event2 = _glewSearchExtension("EGL_KHR_cl_event2", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_cl_event2) EGLEW_KHR_cl_event2 = !_glewInit_EGL_KHR_cl_event2(); +#endif /* EGL_KHR_cl_event2 */ +#ifdef EGL_KHR_client_get_all_proc_addresses + EGLEW_KHR_client_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_client_get_all_proc_addresses", extStart, extEnd); +#endif /* EGL_KHR_client_get_all_proc_addresses */ +#ifdef EGL_KHR_config_attribs + EGLEW_KHR_config_attribs = _glewSearchExtension("EGL_KHR_config_attribs", extStart, extEnd); +#endif /* EGL_KHR_config_attribs */ +#ifdef EGL_KHR_context_flush_control + EGLEW_KHR_context_flush_control = _glewSearchExtension("EGL_KHR_context_flush_control", extStart, extEnd); +#endif /* EGL_KHR_context_flush_control */ +#ifdef EGL_KHR_create_context + EGLEW_KHR_create_context = _glewSearchExtension("EGL_KHR_create_context", extStart, extEnd); +#endif /* EGL_KHR_create_context */ +#ifdef EGL_KHR_create_context_no_error + EGLEW_KHR_create_context_no_error = _glewSearchExtension("EGL_KHR_create_context_no_error", extStart, extEnd); +#endif /* EGL_KHR_create_context_no_error */ +#ifdef EGL_KHR_debug + EGLEW_KHR_debug = _glewSearchExtension("EGL_KHR_debug", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_debug) EGLEW_KHR_debug = !_glewInit_EGL_KHR_debug(); +#endif /* EGL_KHR_debug */ +#ifdef EGL_KHR_display_reference + EGLEW_KHR_display_reference = _glewSearchExtension("EGL_KHR_display_reference", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_display_reference) EGLEW_KHR_display_reference = !_glewInit_EGL_KHR_display_reference(); +#endif /* EGL_KHR_display_reference */ +#ifdef EGL_KHR_fence_sync + EGLEW_KHR_fence_sync = _glewSearchExtension("EGL_KHR_fence_sync", extStart, extEnd); +#endif /* EGL_KHR_fence_sync */ +#ifdef EGL_KHR_get_all_proc_addresses + EGLEW_KHR_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_get_all_proc_addresses", extStart, extEnd); +#endif /* EGL_KHR_get_all_proc_addresses */ +#ifdef EGL_KHR_gl_colorspace + EGLEW_KHR_gl_colorspace = _glewSearchExtension("EGL_KHR_gl_colorspace", extStart, extEnd); +#endif /* EGL_KHR_gl_colorspace */ +#ifdef EGL_KHR_gl_renderbuffer_image + EGLEW_KHR_gl_renderbuffer_image = _glewSearchExtension("EGL_KHR_gl_renderbuffer_image", extStart, extEnd); +#endif /* EGL_KHR_gl_renderbuffer_image */ +#ifdef EGL_KHR_gl_texture_2D_image + EGLEW_KHR_gl_texture_2D_image = _glewSearchExtension("EGL_KHR_gl_texture_2D_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_2D_image */ +#ifdef EGL_KHR_gl_texture_3D_image + EGLEW_KHR_gl_texture_3D_image = _glewSearchExtension("EGL_KHR_gl_texture_3D_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_3D_image */ +#ifdef EGL_KHR_gl_texture_cubemap_image + EGLEW_KHR_gl_texture_cubemap_image = _glewSearchExtension("EGL_KHR_gl_texture_cubemap_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_cubemap_image */ +#ifdef EGL_KHR_image + EGLEW_KHR_image = _glewSearchExtension("EGL_KHR_image", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_image) EGLEW_KHR_image = !_glewInit_EGL_KHR_image(); +#endif /* EGL_KHR_image */ +#ifdef EGL_KHR_image_base + EGLEW_KHR_image_base = _glewSearchExtension("EGL_KHR_image_base", extStart, extEnd); +#endif /* EGL_KHR_image_base */ +#ifdef EGL_KHR_image_pixmap + EGLEW_KHR_image_pixmap = _glewSearchExtension("EGL_KHR_image_pixmap", extStart, extEnd); +#endif /* EGL_KHR_image_pixmap */ +#ifdef EGL_KHR_lock_surface + EGLEW_KHR_lock_surface = _glewSearchExtension("EGL_KHR_lock_surface", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_lock_surface) EGLEW_KHR_lock_surface = !_glewInit_EGL_KHR_lock_surface(); +#endif /* EGL_KHR_lock_surface */ +#ifdef EGL_KHR_lock_surface2 + EGLEW_KHR_lock_surface2 = _glewSearchExtension("EGL_KHR_lock_surface2", extStart, extEnd); +#endif /* EGL_KHR_lock_surface2 */ +#ifdef EGL_KHR_lock_surface3 + EGLEW_KHR_lock_surface3 = _glewSearchExtension("EGL_KHR_lock_surface3", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_lock_surface3) EGLEW_KHR_lock_surface3 = !_glewInit_EGL_KHR_lock_surface3(); +#endif /* EGL_KHR_lock_surface3 */ +#ifdef EGL_KHR_mutable_render_buffer + EGLEW_KHR_mutable_render_buffer = _glewSearchExtension("EGL_KHR_mutable_render_buffer", extStart, extEnd); +#endif /* EGL_KHR_mutable_render_buffer */ +#ifdef EGL_KHR_no_config_context + EGLEW_KHR_no_config_context = _glewSearchExtension("EGL_KHR_no_config_context", extStart, extEnd); +#endif /* EGL_KHR_no_config_context */ +#ifdef EGL_KHR_partial_update + EGLEW_KHR_partial_update = _glewSearchExtension("EGL_KHR_partial_update", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_partial_update) EGLEW_KHR_partial_update = !_glewInit_EGL_KHR_partial_update(); +#endif /* EGL_KHR_partial_update */ +#ifdef EGL_KHR_platform_android + EGLEW_KHR_platform_android = _glewSearchExtension("EGL_KHR_platform_android", extStart, extEnd); +#endif /* EGL_KHR_platform_android */ +#ifdef EGL_KHR_platform_gbm + EGLEW_KHR_platform_gbm = _glewSearchExtension("EGL_KHR_platform_gbm", extStart, extEnd); +#endif /* EGL_KHR_platform_gbm */ +#ifdef EGL_KHR_platform_wayland + EGLEW_KHR_platform_wayland = _glewSearchExtension("EGL_KHR_platform_wayland", extStart, extEnd); +#endif /* EGL_KHR_platform_wayland */ +#ifdef EGL_KHR_platform_x11 + EGLEW_KHR_platform_x11 = _glewSearchExtension("EGL_KHR_platform_x11", extStart, extEnd); +#endif /* EGL_KHR_platform_x11 */ +#ifdef EGL_KHR_reusable_sync + EGLEW_KHR_reusable_sync = _glewSearchExtension("EGL_KHR_reusable_sync", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_reusable_sync) EGLEW_KHR_reusable_sync = !_glewInit_EGL_KHR_reusable_sync(); +#endif /* EGL_KHR_reusable_sync */ +#ifdef EGL_KHR_stream + EGLEW_KHR_stream = _glewSearchExtension("EGL_KHR_stream", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream) EGLEW_KHR_stream = !_glewInit_EGL_KHR_stream(); +#endif /* EGL_KHR_stream */ +#ifdef EGL_KHR_stream_attrib + EGLEW_KHR_stream_attrib = _glewSearchExtension("EGL_KHR_stream_attrib", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_attrib) EGLEW_KHR_stream_attrib = !_glewInit_EGL_KHR_stream_attrib(); +#endif /* EGL_KHR_stream_attrib */ +#ifdef EGL_KHR_stream_consumer_gltexture + EGLEW_KHR_stream_consumer_gltexture = _glewSearchExtension("EGL_KHR_stream_consumer_gltexture", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_consumer_gltexture) EGLEW_KHR_stream_consumer_gltexture = !_glewInit_EGL_KHR_stream_consumer_gltexture(); +#endif /* EGL_KHR_stream_consumer_gltexture */ +#ifdef EGL_KHR_stream_cross_process_fd + EGLEW_KHR_stream_cross_process_fd = _glewSearchExtension("EGL_KHR_stream_cross_process_fd", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_cross_process_fd) EGLEW_KHR_stream_cross_process_fd = !_glewInit_EGL_KHR_stream_cross_process_fd(); +#endif /* EGL_KHR_stream_cross_process_fd */ +#ifdef EGL_KHR_stream_fifo + EGLEW_KHR_stream_fifo = _glewSearchExtension("EGL_KHR_stream_fifo", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_fifo) EGLEW_KHR_stream_fifo = !_glewInit_EGL_KHR_stream_fifo(); +#endif /* EGL_KHR_stream_fifo */ +#ifdef EGL_KHR_stream_producer_aldatalocator + EGLEW_KHR_stream_producer_aldatalocator = _glewSearchExtension("EGL_KHR_stream_producer_aldatalocator", extStart, extEnd); +#endif /* EGL_KHR_stream_producer_aldatalocator */ +#ifdef EGL_KHR_stream_producer_eglsurface + EGLEW_KHR_stream_producer_eglsurface = _glewSearchExtension("EGL_KHR_stream_producer_eglsurface", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_producer_eglsurface) EGLEW_KHR_stream_producer_eglsurface = !_glewInit_EGL_KHR_stream_producer_eglsurface(); +#endif /* EGL_KHR_stream_producer_eglsurface */ +#ifdef EGL_KHR_surfaceless_context + EGLEW_KHR_surfaceless_context = _glewSearchExtension("EGL_KHR_surfaceless_context", extStart, extEnd); +#endif /* EGL_KHR_surfaceless_context */ +#ifdef EGL_KHR_swap_buffers_with_damage + EGLEW_KHR_swap_buffers_with_damage = _glewSearchExtension("EGL_KHR_swap_buffers_with_damage", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_swap_buffers_with_damage) EGLEW_KHR_swap_buffers_with_damage = !_glewInit_EGL_KHR_swap_buffers_with_damage(); +#endif /* EGL_KHR_swap_buffers_with_damage */ +#ifdef EGL_KHR_vg_parent_image + EGLEW_KHR_vg_parent_image = _glewSearchExtension("EGL_KHR_vg_parent_image", extStart, extEnd); +#endif /* EGL_KHR_vg_parent_image */ +#ifdef EGL_KHR_wait_sync + EGLEW_KHR_wait_sync = _glewSearchExtension("EGL_KHR_wait_sync", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_wait_sync) EGLEW_KHR_wait_sync = !_glewInit_EGL_KHR_wait_sync(); +#endif /* EGL_KHR_wait_sync */ +#ifdef EGL_MESA_drm_image + EGLEW_MESA_drm_image = _glewSearchExtension("EGL_MESA_drm_image", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_drm_image) EGLEW_MESA_drm_image = !_glewInit_EGL_MESA_drm_image(); +#endif /* EGL_MESA_drm_image */ +#ifdef EGL_MESA_image_dma_buf_export + EGLEW_MESA_image_dma_buf_export = _glewSearchExtension("EGL_MESA_image_dma_buf_export", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_image_dma_buf_export) EGLEW_MESA_image_dma_buf_export = !_glewInit_EGL_MESA_image_dma_buf_export(); +#endif /* EGL_MESA_image_dma_buf_export */ +#ifdef EGL_MESA_platform_gbm + EGLEW_MESA_platform_gbm = _glewSearchExtension("EGL_MESA_platform_gbm", extStart, extEnd); +#endif /* EGL_MESA_platform_gbm */ +#ifdef EGL_MESA_platform_surfaceless + EGLEW_MESA_platform_surfaceless = _glewSearchExtension("EGL_MESA_platform_surfaceless", extStart, extEnd); +#endif /* EGL_MESA_platform_surfaceless */ +#ifdef EGL_MESA_query_driver + EGLEW_MESA_query_driver = _glewSearchExtension("EGL_MESA_query_driver", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_query_driver) EGLEW_MESA_query_driver = !_glewInit_EGL_MESA_query_driver(); +#endif /* EGL_MESA_query_driver */ +#ifdef EGL_NOK_swap_region + EGLEW_NOK_swap_region = _glewSearchExtension("EGL_NOK_swap_region", extStart, extEnd); + if (glewExperimental || EGLEW_NOK_swap_region) EGLEW_NOK_swap_region = !_glewInit_EGL_NOK_swap_region(); +#endif /* EGL_NOK_swap_region */ +#ifdef EGL_NOK_swap_region2 + EGLEW_NOK_swap_region2 = _glewSearchExtension("EGL_NOK_swap_region2", extStart, extEnd); + if (glewExperimental || EGLEW_NOK_swap_region2) EGLEW_NOK_swap_region2 = !_glewInit_EGL_NOK_swap_region2(); +#endif /* EGL_NOK_swap_region2 */ +#ifdef EGL_NOK_texture_from_pixmap + EGLEW_NOK_texture_from_pixmap = _glewSearchExtension("EGL_NOK_texture_from_pixmap", extStart, extEnd); +#endif /* EGL_NOK_texture_from_pixmap */ +#ifdef EGL_NV_3dvision_surface + EGLEW_NV_3dvision_surface = _glewSearchExtension("EGL_NV_3dvision_surface", extStart, extEnd); +#endif /* EGL_NV_3dvision_surface */ +#ifdef EGL_NV_context_priority_realtime + EGLEW_NV_context_priority_realtime = _glewSearchExtension("EGL_NV_context_priority_realtime", extStart, extEnd); +#endif /* EGL_NV_context_priority_realtime */ +#ifdef EGL_NV_coverage_sample + EGLEW_NV_coverage_sample = _glewSearchExtension("EGL_NV_coverage_sample", extStart, extEnd); +#endif /* EGL_NV_coverage_sample */ +#ifdef EGL_NV_coverage_sample_resolve + EGLEW_NV_coverage_sample_resolve = _glewSearchExtension("EGL_NV_coverage_sample_resolve", extStart, extEnd); +#endif /* EGL_NV_coverage_sample_resolve */ +#ifdef EGL_NV_cuda_event + EGLEW_NV_cuda_event = _glewSearchExtension("EGL_NV_cuda_event", extStart, extEnd); +#endif /* EGL_NV_cuda_event */ +#ifdef EGL_NV_depth_nonlinear + EGLEW_NV_depth_nonlinear = _glewSearchExtension("EGL_NV_depth_nonlinear", extStart, extEnd); +#endif /* EGL_NV_depth_nonlinear */ +#ifdef EGL_NV_device_cuda + EGLEW_NV_device_cuda = _glewSearchExtension("EGL_NV_device_cuda", extStart, extEnd); +#endif /* EGL_NV_device_cuda */ +#ifdef EGL_NV_native_query + EGLEW_NV_native_query = _glewSearchExtension("EGL_NV_native_query", extStart, extEnd); + if (glewExperimental || EGLEW_NV_native_query) EGLEW_NV_native_query = !_glewInit_EGL_NV_native_query(); +#endif /* EGL_NV_native_query */ +#ifdef EGL_NV_post_convert_rounding + EGLEW_NV_post_convert_rounding = _glewSearchExtension("EGL_NV_post_convert_rounding", extStart, extEnd); +#endif /* EGL_NV_post_convert_rounding */ +#ifdef EGL_NV_post_sub_buffer + EGLEW_NV_post_sub_buffer = _glewSearchExtension("EGL_NV_post_sub_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_NV_post_sub_buffer) EGLEW_NV_post_sub_buffer = !_glewInit_EGL_NV_post_sub_buffer(); +#endif /* EGL_NV_post_sub_buffer */ +#ifdef EGL_NV_quadruple_buffer + EGLEW_NV_quadruple_buffer = _glewSearchExtension("EGL_NV_quadruple_buffer", extStart, extEnd); +#endif /* EGL_NV_quadruple_buffer */ +#ifdef EGL_NV_robustness_video_memory_purge + EGLEW_NV_robustness_video_memory_purge = _glewSearchExtension("EGL_NV_robustness_video_memory_purge", extStart, extEnd); +#endif /* EGL_NV_robustness_video_memory_purge */ +#ifdef EGL_NV_stream_consumer_gltexture_yuv + EGLEW_NV_stream_consumer_gltexture_yuv = _glewSearchExtension("EGL_NV_stream_consumer_gltexture_yuv", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_consumer_gltexture_yuv) EGLEW_NV_stream_consumer_gltexture_yuv = !_glewInit_EGL_NV_stream_consumer_gltexture_yuv(); +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ +#ifdef EGL_NV_stream_cross_display + EGLEW_NV_stream_cross_display = _glewSearchExtension("EGL_NV_stream_cross_display", extStart, extEnd); +#endif /* EGL_NV_stream_cross_display */ +#ifdef EGL_NV_stream_cross_object + EGLEW_NV_stream_cross_object = _glewSearchExtension("EGL_NV_stream_cross_object", extStart, extEnd); +#endif /* EGL_NV_stream_cross_object */ +#ifdef EGL_NV_stream_cross_partition + EGLEW_NV_stream_cross_partition = _glewSearchExtension("EGL_NV_stream_cross_partition", extStart, extEnd); +#endif /* EGL_NV_stream_cross_partition */ +#ifdef EGL_NV_stream_cross_process + EGLEW_NV_stream_cross_process = _glewSearchExtension("EGL_NV_stream_cross_process", extStart, extEnd); +#endif /* EGL_NV_stream_cross_process */ +#ifdef EGL_NV_stream_cross_system + EGLEW_NV_stream_cross_system = _glewSearchExtension("EGL_NV_stream_cross_system", extStart, extEnd); +#endif /* EGL_NV_stream_cross_system */ +#ifdef EGL_NV_stream_dma + EGLEW_NV_stream_dma = _glewSearchExtension("EGL_NV_stream_dma", extStart, extEnd); +#endif /* EGL_NV_stream_dma */ +#ifdef EGL_NV_stream_fifo_next + EGLEW_NV_stream_fifo_next = _glewSearchExtension("EGL_NV_stream_fifo_next", extStart, extEnd); +#endif /* EGL_NV_stream_fifo_next */ +#ifdef EGL_NV_stream_fifo_synchronous + EGLEW_NV_stream_fifo_synchronous = _glewSearchExtension("EGL_NV_stream_fifo_synchronous", extStart, extEnd); +#endif /* EGL_NV_stream_fifo_synchronous */ +#ifdef EGL_NV_stream_flush + EGLEW_NV_stream_flush = _glewSearchExtension("EGL_NV_stream_flush", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_flush) EGLEW_NV_stream_flush = !_glewInit_EGL_NV_stream_flush(); +#endif /* EGL_NV_stream_flush */ +#ifdef EGL_NV_stream_frame_limits + EGLEW_NV_stream_frame_limits = _glewSearchExtension("EGL_NV_stream_frame_limits", extStart, extEnd); +#endif /* EGL_NV_stream_frame_limits */ +#ifdef EGL_NV_stream_metadata + EGLEW_NV_stream_metadata = _glewSearchExtension("EGL_NV_stream_metadata", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_metadata) EGLEW_NV_stream_metadata = !_glewInit_EGL_NV_stream_metadata(); +#endif /* EGL_NV_stream_metadata */ +#ifdef EGL_NV_stream_origin + EGLEW_NV_stream_origin = _glewSearchExtension("EGL_NV_stream_origin", extStart, extEnd); +#endif /* EGL_NV_stream_origin */ +#ifdef EGL_NV_stream_remote + EGLEW_NV_stream_remote = _glewSearchExtension("EGL_NV_stream_remote", extStart, extEnd); +#endif /* EGL_NV_stream_remote */ +#ifdef EGL_NV_stream_reset + EGLEW_NV_stream_reset = _glewSearchExtension("EGL_NV_stream_reset", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_reset) EGLEW_NV_stream_reset = !_glewInit_EGL_NV_stream_reset(); +#endif /* EGL_NV_stream_reset */ +#ifdef EGL_NV_stream_socket + EGLEW_NV_stream_socket = _glewSearchExtension("EGL_NV_stream_socket", extStart, extEnd); +#endif /* EGL_NV_stream_socket */ +#ifdef EGL_NV_stream_socket_inet + EGLEW_NV_stream_socket_inet = _glewSearchExtension("EGL_NV_stream_socket_inet", extStart, extEnd); +#endif /* EGL_NV_stream_socket_inet */ +#ifdef EGL_NV_stream_socket_unix + EGLEW_NV_stream_socket_unix = _glewSearchExtension("EGL_NV_stream_socket_unix", extStart, extEnd); +#endif /* EGL_NV_stream_socket_unix */ +#ifdef EGL_NV_stream_sync + EGLEW_NV_stream_sync = _glewSearchExtension("EGL_NV_stream_sync", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_sync) EGLEW_NV_stream_sync = !_glewInit_EGL_NV_stream_sync(); +#endif /* EGL_NV_stream_sync */ +#ifdef EGL_NV_sync + EGLEW_NV_sync = _glewSearchExtension("EGL_NV_sync", extStart, extEnd); + if (glewExperimental || EGLEW_NV_sync) EGLEW_NV_sync = !_glewInit_EGL_NV_sync(); +#endif /* EGL_NV_sync */ +#ifdef EGL_NV_system_time + EGLEW_NV_system_time = _glewSearchExtension("EGL_NV_system_time", extStart, extEnd); + if (glewExperimental || EGLEW_NV_system_time) EGLEW_NV_system_time = !_glewInit_EGL_NV_system_time(); +#endif /* EGL_NV_system_time */ +#ifdef EGL_NV_triple_buffer + EGLEW_NV_triple_buffer = _glewSearchExtension("EGL_NV_triple_buffer", extStart, extEnd); +#endif /* EGL_NV_triple_buffer */ +#ifdef EGL_TIZEN_image_native_buffer + EGLEW_TIZEN_image_native_buffer = _glewSearchExtension("EGL_TIZEN_image_native_buffer", extStart, extEnd); +#endif /* EGL_TIZEN_image_native_buffer */ +#ifdef EGL_TIZEN_image_native_surface + EGLEW_TIZEN_image_native_surface = _glewSearchExtension("EGL_TIZEN_image_native_surface", extStart, extEnd); +#endif /* EGL_TIZEN_image_native_surface */ +#ifdef EGL_WL_bind_wayland_display + EGLEW_WL_bind_wayland_display = _glewSearchExtension("EGL_WL_bind_wayland_display", extStart, extEnd); + if (glewExperimental || EGLEW_WL_bind_wayland_display) EGLEW_WL_bind_wayland_display = !_glewInit_EGL_WL_bind_wayland_display(); +#endif /* EGL_WL_bind_wayland_display */ +#ifdef EGL_WL_create_wayland_buffer_from_image + EGLEW_WL_create_wayland_buffer_from_image = _glewSearchExtension("EGL_WL_create_wayland_buffer_from_image", extStart, extEnd); + if (glewExperimental || EGLEW_WL_create_wayland_buffer_from_image) EGLEW_WL_create_wayland_buffer_from_image = !_glewInit_EGL_WL_create_wayland_buffer_from_image(); +#endif /* EGL_WL_create_wayland_buffer_from_image */ + + return GLEW_OK; +} + +#elif defined(_WIN32) PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL = NULL; @@ -11524,6 +21186,7 @@ GLboolean __WGLEW_AMD_gpu_association = GL_FALSE; GLboolean __WGLEW_ARB_buffer_region = GL_FALSE; GLboolean __WGLEW_ARB_context_flush_control = GL_FALSE; GLboolean __WGLEW_ARB_create_context = GL_FALSE; +GLboolean __WGLEW_ARB_create_context_no_error = GL_FALSE; GLboolean __WGLEW_ARB_create_context_profile = GL_FALSE; GLboolean __WGLEW_ARB_create_context_robustness = GL_FALSE; GLboolean __WGLEW_ARB_extensions_string = GL_FALSE; @@ -11538,6 +21201,7 @@ GLboolean __WGLEW_ARB_robustness_application_isolation = GL_FALSE; GLboolean __WGLEW_ARB_robustness_share_group_isolation = GL_FALSE; GLboolean __WGLEW_ATI_pixel_format_float = GL_FALSE; GLboolean __WGLEW_ATI_render_texture_rectangle = GL_FALSE; +GLboolean __WGLEW_EXT_colorspace = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __WGLEW_EXT_depth_float = GL_FALSE; @@ -11563,6 +21227,7 @@ GLboolean __WGLEW_NV_copy_image = GL_FALSE; GLboolean __WGLEW_NV_delay_before_swap = GL_FALSE; GLboolean __WGLEW_NV_float_buffer = GL_FALSE; GLboolean __WGLEW_NV_gpu_affinity = GL_FALSE; +GLboolean __WGLEW_NV_multigpu_context = GL_FALSE; GLboolean __WGLEW_NV_multisample_coverage = GL_FALSE; GLboolean __WGLEW_NV_present_video = GL_FALSE; GLboolean __WGLEW_NV_render_depth_texture = GL_FALSE; @@ -11572,12 +21237,9 @@ GLboolean __WGLEW_NV_vertex_array_range = GL_FALSE; GLboolean __WGLEW_NV_video_capture = GL_FALSE; GLboolean __WGLEW_NV_video_output = GL_FALSE; GLboolean __WGLEW_OML_sync_control = GL_FALSE; - -#endif /* !GLEW_MX */ - #ifdef WGL_3DL_stereo_control -static GLboolean _glewInit_WGL_3DL_stereo_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_3DL_stereo_control () { GLboolean r = GL_FALSE; @@ -11590,7 +21252,7 @@ static GLboolean _glewInit_WGL_3DL_stereo_control (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_AMD_gpu_association -static GLboolean _glewInit_WGL_AMD_gpu_association (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_AMD_gpu_association () { GLboolean r = GL_FALSE; @@ -11611,7 +21273,7 @@ static GLboolean _glewInit_WGL_AMD_gpu_association (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_buffer_region -static GLboolean _glewInit_WGL_ARB_buffer_region (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_buffer_region () { GLboolean r = GL_FALSE; @@ -11627,7 +21289,7 @@ static GLboolean _glewInit_WGL_ARB_buffer_region (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_create_context -static GLboolean _glewInit_WGL_ARB_create_context (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_create_context () { GLboolean r = GL_FALSE; @@ -11640,7 +21302,7 @@ static GLboolean _glewInit_WGL_ARB_create_context (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_extensions_string -static GLboolean _glewInit_WGL_ARB_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_extensions_string () { GLboolean r = GL_FALSE; @@ -11653,7 +21315,7 @@ static GLboolean _glewInit_WGL_ARB_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_ARB_make_current_read -static GLboolean _glewInit_WGL_ARB_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_make_current_read () { GLboolean r = GL_FALSE; @@ -11667,7 +21329,7 @@ static GLboolean _glewInit_WGL_ARB_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_ARB_pbuffer -static GLboolean _glewInit_WGL_ARB_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_pbuffer () { GLboolean r = GL_FALSE; @@ -11684,7 +21346,7 @@ static GLboolean _glewInit_WGL_ARB_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_pixel_format -static GLboolean _glewInit_WGL_ARB_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_pixel_format () { GLboolean r = GL_FALSE; @@ -11699,7 +21361,7 @@ static GLboolean _glewInit_WGL_ARB_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_render_texture -static GLboolean _glewInit_WGL_ARB_render_texture (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_render_texture () { GLboolean r = GL_FALSE; @@ -11714,7 +21376,7 @@ static GLboolean _glewInit_WGL_ARB_render_texture (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_display_color_table -static GLboolean _glewInit_WGL_EXT_display_color_table (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_display_color_table () { GLboolean r = GL_FALSE; @@ -11730,7 +21392,7 @@ static GLboolean _glewInit_WGL_EXT_display_color_table (WGLEW_CONTEXT_ARG_DEF_IN #ifdef WGL_EXT_extensions_string -static GLboolean _glewInit_WGL_EXT_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_extensions_string () { GLboolean r = GL_FALSE; @@ -11743,7 +21405,7 @@ static GLboolean _glewInit_WGL_EXT_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_EXT_make_current_read -static GLboolean _glewInit_WGL_EXT_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_make_current_read () { GLboolean r = GL_FALSE; @@ -11757,7 +21419,7 @@ static GLboolean _glewInit_WGL_EXT_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_EXT_pbuffer -static GLboolean _glewInit_WGL_EXT_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_pbuffer () { GLboolean r = GL_FALSE; @@ -11774,7 +21436,7 @@ static GLboolean _glewInit_WGL_EXT_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_pixel_format -static GLboolean _glewInit_WGL_EXT_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_pixel_format () { GLboolean r = GL_FALSE; @@ -11789,7 +21451,7 @@ static GLboolean _glewInit_WGL_EXT_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_swap_control -static GLboolean _glewInit_WGL_EXT_swap_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_swap_control () { GLboolean r = GL_FALSE; @@ -11803,7 +21465,7 @@ static GLboolean _glewInit_WGL_EXT_swap_control (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_digital_video_control -static GLboolean _glewInit_WGL_I3D_digital_video_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_digital_video_control () { GLboolean r = GL_FALSE; @@ -11817,7 +21479,7 @@ static GLboolean _glewInit_WGL_I3D_digital_video_control (WGLEW_CONTEXT_ARG_DEF_ #ifdef WGL_I3D_gamma -static GLboolean _glewInit_WGL_I3D_gamma (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_gamma () { GLboolean r = GL_FALSE; @@ -11833,7 +21495,7 @@ static GLboolean _glewInit_WGL_I3D_gamma (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_genlock -static GLboolean _glewInit_WGL_I3D_genlock (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_genlock () { GLboolean r = GL_FALSE; @@ -11857,7 +21519,7 @@ static GLboolean _glewInit_WGL_I3D_genlock (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_image_buffer -static GLboolean _glewInit_WGL_I3D_image_buffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_image_buffer () { GLboolean r = GL_FALSE; @@ -11873,7 +21535,7 @@ static GLboolean _glewInit_WGL_I3D_image_buffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_swap_frame_lock -static GLboolean _glewInit_WGL_I3D_swap_frame_lock (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_swap_frame_lock () { GLboolean r = GL_FALSE; @@ -11889,7 +21551,7 @@ static GLboolean _glewInit_WGL_I3D_swap_frame_lock (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_swap_frame_usage -static GLboolean _glewInit_WGL_I3D_swap_frame_usage (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_swap_frame_usage () { GLboolean r = GL_FALSE; @@ -11905,7 +21567,7 @@ static GLboolean _glewInit_WGL_I3D_swap_frame_usage (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_DX_interop -static GLboolean _glewInit_WGL_NV_DX_interop (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_DX_interop () { GLboolean r = GL_FALSE; @@ -11925,7 +21587,7 @@ static GLboolean _glewInit_WGL_NV_DX_interop (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_copy_image -static GLboolean _glewInit_WGL_NV_copy_image (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_copy_image () { GLboolean r = GL_FALSE; @@ -11938,7 +21600,7 @@ static GLboolean _glewInit_WGL_NV_copy_image (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_delay_before_swap -static GLboolean _glewInit_WGL_NV_delay_before_swap (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_delay_before_swap () { GLboolean r = GL_FALSE; @@ -11951,7 +21613,7 @@ static GLboolean _glewInit_WGL_NV_delay_before_swap (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_gpu_affinity -static GLboolean _glewInit_WGL_NV_gpu_affinity (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_gpu_affinity () { GLboolean r = GL_FALSE; @@ -11968,7 +21630,7 @@ static GLboolean _glewInit_WGL_NV_gpu_affinity (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_present_video -static GLboolean _glewInit_WGL_NV_present_video (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_present_video () { GLboolean r = GL_FALSE; @@ -11983,7 +21645,7 @@ static GLboolean _glewInit_WGL_NV_present_video (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_swap_group -static GLboolean _glewInit_WGL_NV_swap_group (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_swap_group () { GLboolean r = GL_FALSE; @@ -12001,7 +21663,7 @@ static GLboolean _glewInit_WGL_NV_swap_group (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_vertex_array_range -static GLboolean _glewInit_WGL_NV_vertex_array_range (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -12015,7 +21677,7 @@ static GLboolean _glewInit_WGL_NV_vertex_array_range (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_NV_video_capture -static GLboolean _glewInit_WGL_NV_video_capture (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_video_capture () { GLboolean r = GL_FALSE; @@ -12032,7 +21694,7 @@ static GLboolean _glewInit_WGL_NV_video_capture (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_video_output -static GLboolean _glewInit_WGL_NV_video_output (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_video_output () { GLboolean r = GL_FALSE; @@ -12050,7 +21712,7 @@ static GLboolean _glewInit_WGL_NV_video_output (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_OML_sync_control -static GLboolean _glewInit_WGL_OML_sync_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_OML_sync_control () { GLboolean r = GL_FALSE; @@ -12088,11 +21750,7 @@ GLboolean GLEWAPIENTRY wglewGetExtension (const char* name) return _glewSearchExtension(name, start, end); } -#ifdef GLEW_MX -GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) -#else -GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) -#endif +GLenum GLEWAPIENTRY wglewInit () { GLboolean crippled; const GLubyte* extStart; @@ -12106,10 +21764,8 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) extStart = (const GLubyte*)""; else extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); - else { - HDC dc = wglGetCurrentDC(); - extStart = (const GLubyte*)_wglewGetExtensionsStringARB(dc); - } + else + extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; @@ -12118,23 +21774,26 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_3DFX_multisample */ #ifdef WGL_3DL_stereo_control WGLEW_3DL_stereo_control = _glewSearchExtension("WGL_3DL_stereo_control", extStart, extEnd); - if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control(); #endif /* WGL_3DL_stereo_control */ #ifdef WGL_AMD_gpu_association WGLEW_AMD_gpu_association = _glewSearchExtension("WGL_AMD_gpu_association", extStart, extEnd); - if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association(); #endif /* WGL_AMD_gpu_association */ #ifdef WGL_ARB_buffer_region WGLEW_ARB_buffer_region = _glewSearchExtension("WGL_ARB_buffer_region", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region(); #endif /* WGL_ARB_buffer_region */ #ifdef WGL_ARB_context_flush_control WGLEW_ARB_context_flush_control = _glewSearchExtension("WGL_ARB_context_flush_control", extStart, extEnd); #endif /* WGL_ARB_context_flush_control */ #ifdef WGL_ARB_create_context WGLEW_ARB_create_context = _glewSearchExtension("WGL_ARB_create_context", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context(); #endif /* WGL_ARB_create_context */ +#ifdef WGL_ARB_create_context_no_error + WGLEW_ARB_create_context_no_error = _glewSearchExtension("WGL_ARB_create_context_no_error", extStart, extEnd); +#endif /* WGL_ARB_create_context_no_error */ #ifdef WGL_ARB_create_context_profile WGLEW_ARB_create_context_profile = _glewSearchExtension("WGL_ARB_create_context_profile", extStart, extEnd); #endif /* WGL_ARB_create_context_profile */ @@ -12143,32 +21802,32 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_ARB_create_context_robustness */ #ifdef WGL_ARB_extensions_string WGLEW_ARB_extensions_string = _glewSearchExtension("WGL_ARB_extensions_string", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string(); #endif /* WGL_ARB_extensions_string */ #ifdef WGL_ARB_framebuffer_sRGB WGLEW_ARB_framebuffer_sRGB = _glewSearchExtension("WGL_ARB_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_ARB_framebuffer_sRGB */ #ifdef WGL_ARB_make_current_read WGLEW_ARB_make_current_read = _glewSearchExtension("WGL_ARB_make_current_read", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read(); #endif /* WGL_ARB_make_current_read */ #ifdef WGL_ARB_multisample WGLEW_ARB_multisample = _glewSearchExtension("WGL_ARB_multisample", extStart, extEnd); #endif /* WGL_ARB_multisample */ #ifdef WGL_ARB_pbuffer WGLEW_ARB_pbuffer = _glewSearchExtension("WGL_ARB_pbuffer", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer(); #endif /* WGL_ARB_pbuffer */ #ifdef WGL_ARB_pixel_format WGLEW_ARB_pixel_format = _glewSearchExtension("WGL_ARB_pixel_format", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format(); #endif /* WGL_ARB_pixel_format */ #ifdef WGL_ARB_pixel_format_float WGLEW_ARB_pixel_format_float = _glewSearchExtension("WGL_ARB_pixel_format_float", extStart, extEnd); #endif /* WGL_ARB_pixel_format_float */ #ifdef WGL_ARB_render_texture WGLEW_ARB_render_texture = _glewSearchExtension("WGL_ARB_render_texture", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture(); #endif /* WGL_ARB_render_texture */ #ifdef WGL_ARB_robustness_application_isolation WGLEW_ARB_robustness_application_isolation = _glewSearchExtension("WGL_ARB_robustness_application_isolation", extStart, extEnd); @@ -12182,6 +21841,9 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #ifdef WGL_ATI_render_texture_rectangle WGLEW_ATI_render_texture_rectangle = _glewSearchExtension("WGL_ATI_render_texture_rectangle", extStart, extEnd); #endif /* WGL_ATI_render_texture_rectangle */ +#ifdef WGL_EXT_colorspace + WGLEW_EXT_colorspace = _glewSearchExtension("WGL_EXT_colorspace", extStart, extEnd); +#endif /* WGL_EXT_colorspace */ #ifdef WGL_EXT_create_context_es2_profile WGLEW_EXT_create_context_es2_profile = _glewSearchExtension("WGL_EXT_create_context_es2_profile", extStart, extEnd); #endif /* WGL_EXT_create_context_es2_profile */ @@ -12193,92 +21855,95 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_EXT_depth_float */ #ifdef WGL_EXT_display_color_table WGLEW_EXT_display_color_table = _glewSearchExtension("WGL_EXT_display_color_table", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table(); #endif /* WGL_EXT_display_color_table */ #ifdef WGL_EXT_extensions_string WGLEW_EXT_extensions_string = _glewSearchExtension("WGL_EXT_extensions_string", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string(); #endif /* WGL_EXT_extensions_string */ #ifdef WGL_EXT_framebuffer_sRGB WGLEW_EXT_framebuffer_sRGB = _glewSearchExtension("WGL_EXT_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_EXT_framebuffer_sRGB */ #ifdef WGL_EXT_make_current_read WGLEW_EXT_make_current_read = _glewSearchExtension("WGL_EXT_make_current_read", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read(); #endif /* WGL_EXT_make_current_read */ #ifdef WGL_EXT_multisample WGLEW_EXT_multisample = _glewSearchExtension("WGL_EXT_multisample", extStart, extEnd); #endif /* WGL_EXT_multisample */ #ifdef WGL_EXT_pbuffer WGLEW_EXT_pbuffer = _glewSearchExtension("WGL_EXT_pbuffer", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer(); #endif /* WGL_EXT_pbuffer */ #ifdef WGL_EXT_pixel_format WGLEW_EXT_pixel_format = _glewSearchExtension("WGL_EXT_pixel_format", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format(); #endif /* WGL_EXT_pixel_format */ #ifdef WGL_EXT_pixel_format_packed_float WGLEW_EXT_pixel_format_packed_float = _glewSearchExtension("WGL_EXT_pixel_format_packed_float", extStart, extEnd); #endif /* WGL_EXT_pixel_format_packed_float */ #ifdef WGL_EXT_swap_control WGLEW_EXT_swap_control = _glewSearchExtension("WGL_EXT_swap_control", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control(); #endif /* WGL_EXT_swap_control */ #ifdef WGL_EXT_swap_control_tear WGLEW_EXT_swap_control_tear = _glewSearchExtension("WGL_EXT_swap_control_tear", extStart, extEnd); #endif /* WGL_EXT_swap_control_tear */ #ifdef WGL_I3D_digital_video_control WGLEW_I3D_digital_video_control = _glewSearchExtension("WGL_I3D_digital_video_control", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control(); #endif /* WGL_I3D_digital_video_control */ #ifdef WGL_I3D_gamma WGLEW_I3D_gamma = _glewSearchExtension("WGL_I3D_gamma", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma(); #endif /* WGL_I3D_gamma */ #ifdef WGL_I3D_genlock WGLEW_I3D_genlock = _glewSearchExtension("WGL_I3D_genlock", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock(); #endif /* WGL_I3D_genlock */ #ifdef WGL_I3D_image_buffer WGLEW_I3D_image_buffer = _glewSearchExtension("WGL_I3D_image_buffer", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer(); #endif /* WGL_I3D_image_buffer */ #ifdef WGL_I3D_swap_frame_lock WGLEW_I3D_swap_frame_lock = _glewSearchExtension("WGL_I3D_swap_frame_lock", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock(); #endif /* WGL_I3D_swap_frame_lock */ #ifdef WGL_I3D_swap_frame_usage WGLEW_I3D_swap_frame_usage = _glewSearchExtension("WGL_I3D_swap_frame_usage", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage(); #endif /* WGL_I3D_swap_frame_usage */ #ifdef WGL_NV_DX_interop WGLEW_NV_DX_interop = _glewSearchExtension("WGL_NV_DX_interop", extStart, extEnd); - if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop(); #endif /* WGL_NV_DX_interop */ #ifdef WGL_NV_DX_interop2 WGLEW_NV_DX_interop2 = _glewSearchExtension("WGL_NV_DX_interop2", extStart, extEnd); #endif /* WGL_NV_DX_interop2 */ #ifdef WGL_NV_copy_image WGLEW_NV_copy_image = _glewSearchExtension("WGL_NV_copy_image", extStart, extEnd); - if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image(); #endif /* WGL_NV_copy_image */ #ifdef WGL_NV_delay_before_swap WGLEW_NV_delay_before_swap = _glewSearchExtension("WGL_NV_delay_before_swap", extStart, extEnd); - if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap(); #endif /* WGL_NV_delay_before_swap */ #ifdef WGL_NV_float_buffer WGLEW_NV_float_buffer = _glewSearchExtension("WGL_NV_float_buffer", extStart, extEnd); #endif /* WGL_NV_float_buffer */ #ifdef WGL_NV_gpu_affinity WGLEW_NV_gpu_affinity = _glewSearchExtension("WGL_NV_gpu_affinity", extStart, extEnd); - if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity(); #endif /* WGL_NV_gpu_affinity */ +#ifdef WGL_NV_multigpu_context + WGLEW_NV_multigpu_context = _glewSearchExtension("WGL_NV_multigpu_context", extStart, extEnd); +#endif /* WGL_NV_multigpu_context */ #ifdef WGL_NV_multisample_coverage WGLEW_NV_multisample_coverage = _glewSearchExtension("WGL_NV_multisample_coverage", extStart, extEnd); #endif /* WGL_NV_multisample_coverage */ #ifdef WGL_NV_present_video WGLEW_NV_present_video = _glewSearchExtension("WGL_NV_present_video", extStart, extEnd); - if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video(); #endif /* WGL_NV_present_video */ #ifdef WGL_NV_render_depth_texture WGLEW_NV_render_depth_texture = _glewSearchExtension("WGL_NV_render_depth_texture", extStart, extEnd); @@ -12288,23 +21953,23 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_NV_render_texture_rectangle */ #ifdef WGL_NV_swap_group WGLEW_NV_swap_group = _glewSearchExtension("WGL_NV_swap_group", extStart, extEnd); - if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group(); #endif /* WGL_NV_swap_group */ #ifdef WGL_NV_vertex_array_range WGLEW_NV_vertex_array_range = _glewSearchExtension("WGL_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range(); #endif /* WGL_NV_vertex_array_range */ #ifdef WGL_NV_video_capture WGLEW_NV_video_capture = _glewSearchExtension("WGL_NV_video_capture", extStart, extEnd); - if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture(); #endif /* WGL_NV_video_capture */ #ifdef WGL_NV_video_output WGLEW_NV_video_output = _glewSearchExtension("WGL_NV_video_output", extStart, extEnd); - if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output(); #endif /* WGL_NV_video_output */ #ifdef WGL_OML_sync_control WGLEW_OML_sync_control = _glewSearchExtension("WGL_OML_sync_control", extStart, extEnd); - if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control(); #endif /* WGL_OML_sync_control */ return GLEW_OK; @@ -12350,6 +22015,7 @@ PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI = NULL; PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT = NULL; PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT = NULL; +PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT = NULL; PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT = NULL; PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT = NULL; @@ -12463,8 +22129,6 @@ PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN = NULL; PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN = NULL; PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN = NULL; -#if !defined(GLEW_MX) - GLboolean __GLXEW_VERSION_1_0 = GL_FALSE; GLboolean __GLXEW_VERSION_1_1 = GL_FALSE; GLboolean __GLXEW_VERSION_1_2 = GL_FALSE; @@ -12474,6 +22138,7 @@ GLboolean __GLXEW_3DFX_multisample = GL_FALSE; GLboolean __GLXEW_AMD_gpu_association = GL_FALSE; GLboolean __GLXEW_ARB_context_flush_control = GL_FALSE; GLboolean __GLXEW_ARB_create_context = GL_FALSE; +GLboolean __GLXEW_ARB_create_context_no_error = GL_FALSE; GLboolean __GLXEW_ARB_create_context_profile = GL_FALSE; GLboolean __GLXEW_ARB_create_context_robustness = GL_FALSE; GLboolean __GLXEW_ARB_fbconfig_float = GL_FALSE; @@ -12486,11 +22151,14 @@ GLboolean __GLXEW_ARB_vertex_buffer_object = GL_FALSE; GLboolean __GLXEW_ATI_pixel_format_float = GL_FALSE; GLboolean __GLXEW_ATI_render_texture = GL_FALSE; GLboolean __GLXEW_EXT_buffer_age = GL_FALSE; +GLboolean __GLXEW_EXT_context_priority = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __GLXEW_EXT_fbconfig_packed_float = GL_FALSE; GLboolean __GLXEW_EXT_framebuffer_sRGB = GL_FALSE; GLboolean __GLXEW_EXT_import_context = GL_FALSE; +GLboolean __GLXEW_EXT_libglvnd = GL_FALSE; +GLboolean __GLXEW_EXT_no_config_context = GL_FALSE; GLboolean __GLXEW_EXT_scene_marker = GL_FALSE; GLboolean __GLXEW_EXT_stereo_tree = GL_FALSE; GLboolean __GLXEW_EXT_swap_control = GL_FALSE; @@ -12510,8 +22178,10 @@ GLboolean __GLXEW_NV_copy_buffer = GL_FALSE; GLboolean __GLXEW_NV_copy_image = GL_FALSE; GLboolean __GLXEW_NV_delay_before_swap = GL_FALSE; GLboolean __GLXEW_NV_float_buffer = GL_FALSE; +GLboolean __GLXEW_NV_multigpu_context = GL_FALSE; GLboolean __GLXEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLXEW_NV_present_video = GL_FALSE; +GLboolean __GLXEW_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __GLXEW_NV_swap_group = GL_FALSE; GLboolean __GLXEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLXEW_NV_video_capture = GL_FALSE; @@ -12535,12 +22205,9 @@ GLboolean __GLXEW_SGI_swap_control = GL_FALSE; GLboolean __GLXEW_SGI_video_sync = GL_FALSE; GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE; GLboolean __GLXEW_SUN_video_resize = GL_FALSE; - -#endif /* !GLEW_MX */ - #ifdef GLX_VERSION_1_2 -static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_VERSION_1_2 () { GLboolean r = GL_FALSE; @@ -12553,7 +22220,7 @@ static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_VERSION_1_3 -static GLboolean _glewInit_GLX_VERSION_1_3 (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_VERSION_1_3 () { GLboolean r = GL_FALSE; @@ -12582,7 +22249,7 @@ static GLboolean _glewInit_GLX_VERSION_1_3 (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_AMD_gpu_association -static GLboolean _glewInit_GLX_AMD_gpu_association (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_AMD_gpu_association () { GLboolean r = GL_FALSE; @@ -12603,7 +22270,7 @@ static GLboolean _glewInit_GLX_AMD_gpu_association (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_ARB_create_context -static GLboolean _glewInit_GLX_ARB_create_context (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_ARB_create_context () { GLboolean r = GL_FALSE; @@ -12616,7 +22283,7 @@ static GLboolean _glewInit_GLX_ARB_create_context (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_ATI_render_texture -static GLboolean _glewInit_GLX_ATI_render_texture (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_ATI_render_texture () { GLboolean r = GL_FALSE; @@ -12631,12 +22298,13 @@ static GLboolean _glewInit_GLX_ATI_render_texture (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_import_context -static GLboolean _glewInit_GLX_EXT_import_context (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_import_context () { GLboolean r = GL_FALSE; r = ((glXFreeContextEXT = (PFNGLXFREECONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXFreeContextEXT")) == NULL) || r; r = ((glXGetContextIDEXT = (PFNGLXGETCONTEXTIDEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetContextIDEXT")) == NULL) || r; + r = ((glXGetCurrentDisplayEXT = (PFNGLXGETCURRENTDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplayEXT")) == NULL) || r; r = ((glXImportContextEXT = (PFNGLXIMPORTCONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXImportContextEXT")) == NULL) || r; r = ((glXQueryContextInfoEXT = (PFNGLXQUERYCONTEXTINFOEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContextInfoEXT")) == NULL) || r; @@ -12647,7 +22315,7 @@ static GLboolean _glewInit_GLX_EXT_import_context (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_swap_control -static GLboolean _glewInit_GLX_EXT_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_swap_control () { GLboolean r = GL_FALSE; @@ -12660,7 +22328,7 @@ static GLboolean _glewInit_GLX_EXT_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_texture_from_pixmap -static GLboolean _glewInit_GLX_EXT_texture_from_pixmap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_texture_from_pixmap () { GLboolean r = GL_FALSE; @@ -12674,7 +22342,7 @@ static GLboolean _glewInit_GLX_EXT_texture_from_pixmap (GLXEW_CONTEXT_ARG_DEF_IN #ifdef GLX_MESA_agp_offset -static GLboolean _glewInit_GLX_MESA_agp_offset (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_agp_offset () { GLboolean r = GL_FALSE; @@ -12687,7 +22355,7 @@ static GLboolean _glewInit_GLX_MESA_agp_offset (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_copy_sub_buffer -static GLboolean _glewInit_GLX_MESA_copy_sub_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_copy_sub_buffer () { GLboolean r = GL_FALSE; @@ -12700,7 +22368,7 @@ static GLboolean _glewInit_GLX_MESA_copy_sub_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_pixmap_colormap -static GLboolean _glewInit_GLX_MESA_pixmap_colormap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_pixmap_colormap () { GLboolean r = GL_FALSE; @@ -12713,7 +22381,7 @@ static GLboolean _glewInit_GLX_MESA_pixmap_colormap (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_query_renderer -static GLboolean _glewInit_GLX_MESA_query_renderer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_query_renderer () { GLboolean r = GL_FALSE; @@ -12729,7 +22397,7 @@ static GLboolean _glewInit_GLX_MESA_query_renderer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_release_buffers -static GLboolean _glewInit_GLX_MESA_release_buffers (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_release_buffers () { GLboolean r = GL_FALSE; @@ -12742,7 +22410,7 @@ static GLboolean _glewInit_GLX_MESA_release_buffers (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_set_3dfx_mode -static GLboolean _glewInit_GLX_MESA_set_3dfx_mode (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_set_3dfx_mode () { GLboolean r = GL_FALSE; @@ -12755,7 +22423,7 @@ static GLboolean _glewInit_GLX_MESA_set_3dfx_mode (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_swap_control -static GLboolean _glewInit_GLX_MESA_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_swap_control () { GLboolean r = GL_FALSE; @@ -12769,7 +22437,7 @@ static GLboolean _glewInit_GLX_MESA_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_copy_buffer -static GLboolean _glewInit_GLX_NV_copy_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_copy_buffer () { GLboolean r = GL_FALSE; @@ -12783,7 +22451,7 @@ static GLboolean _glewInit_GLX_NV_copy_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_copy_image -static GLboolean _glewInit_GLX_NV_copy_image (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_copy_image () { GLboolean r = GL_FALSE; @@ -12796,7 +22464,7 @@ static GLboolean _glewInit_GLX_NV_copy_image (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_delay_before_swap -static GLboolean _glewInit_GLX_NV_delay_before_swap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_delay_before_swap () { GLboolean r = GL_FALSE; @@ -12809,7 +22477,7 @@ static GLboolean _glewInit_GLX_NV_delay_before_swap (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_present_video -static GLboolean _glewInit_GLX_NV_present_video (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_present_video () { GLboolean r = GL_FALSE; @@ -12823,7 +22491,7 @@ static GLboolean _glewInit_GLX_NV_present_video (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_swap_group -static GLboolean _glewInit_GLX_NV_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_swap_group () { GLboolean r = GL_FALSE; @@ -12841,7 +22509,7 @@ static GLboolean _glewInit_GLX_NV_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_vertex_array_range -static GLboolean _glewInit_GLX_NV_vertex_array_range (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -12855,7 +22523,7 @@ static GLboolean _glewInit_GLX_NV_vertex_array_range (GLXEW_CONTEXT_ARG_DEF_INIT #ifdef GLX_NV_video_capture -static GLboolean _glewInit_GLX_NV_video_capture (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_video_capture () { GLboolean r = GL_FALSE; @@ -12872,7 +22540,7 @@ static GLboolean _glewInit_GLX_NV_video_capture (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_video_out -static GLboolean _glewInit_GLX_NV_video_out (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_video_out () { GLboolean r = GL_FALSE; @@ -12890,7 +22558,7 @@ static GLboolean _glewInit_GLX_NV_video_out (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_OML_sync_control -static GLboolean _glewInit_GLX_OML_sync_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_OML_sync_control () { GLboolean r = GL_FALSE; @@ -12907,7 +22575,7 @@ static GLboolean _glewInit_GLX_OML_sync_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_fbconfig -static GLboolean _glewInit_GLX_SGIX_fbconfig (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_fbconfig () { GLboolean r = GL_FALSE; @@ -12925,7 +22593,7 @@ static GLboolean _glewInit_GLX_SGIX_fbconfig (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_hyperpipe -static GLboolean _glewInit_GLX_SGIX_hyperpipe (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_hyperpipe () { GLboolean r = GL_FALSE; @@ -12945,7 +22613,7 @@ static GLboolean _glewInit_GLX_SGIX_hyperpipe (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_pbuffer -static GLboolean _glewInit_GLX_SGIX_pbuffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_pbuffer () { GLboolean r = GL_FALSE; @@ -12962,7 +22630,7 @@ static GLboolean _glewInit_GLX_SGIX_pbuffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_swap_barrier -static GLboolean _glewInit_GLX_SGIX_swap_barrier (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_swap_barrier () { GLboolean r = GL_FALSE; @@ -12976,7 +22644,7 @@ static GLboolean _glewInit_GLX_SGIX_swap_barrier (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_swap_group -static GLboolean _glewInit_GLX_SGIX_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_swap_group () { GLboolean r = GL_FALSE; @@ -12989,7 +22657,7 @@ static GLboolean _glewInit_GLX_SGIX_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_video_resize -static GLboolean _glewInit_GLX_SGIX_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_video_resize () { GLboolean r = GL_FALSE; @@ -13006,7 +22674,7 @@ static GLboolean _glewInit_GLX_SGIX_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_cushion -static GLboolean _glewInit_GLX_SGI_cushion (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_cushion () { GLboolean r = GL_FALSE; @@ -13019,7 +22687,7 @@ static GLboolean _glewInit_GLX_SGI_cushion (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_make_current_read -static GLboolean _glewInit_GLX_SGI_make_current_read (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_make_current_read () { GLboolean r = GL_FALSE; @@ -13033,7 +22701,7 @@ static GLboolean _glewInit_GLX_SGI_make_current_read (GLXEW_CONTEXT_ARG_DEF_INIT #ifdef GLX_SGI_swap_control -static GLboolean _glewInit_GLX_SGI_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_swap_control () { GLboolean r = GL_FALSE; @@ -13046,7 +22714,7 @@ static GLboolean _glewInit_GLX_SGI_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_video_sync -static GLboolean _glewInit_GLX_SGI_video_sync (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_video_sync () { GLboolean r = GL_FALSE; @@ -13060,7 +22728,7 @@ static GLboolean _glewInit_GLX_SGI_video_sync (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SUN_get_transparent_index -static GLboolean _glewInit_GLX_SUN_get_transparent_index (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SUN_get_transparent_index () { GLboolean r = GL_FALSE; @@ -13073,7 +22741,7 @@ static GLboolean _glewInit_GLX_SUN_get_transparent_index (GLXEW_CONTEXT_ARG_DEF_ #ifdef GLX_SUN_video_resize -static GLboolean _glewInit_GLX_SUN_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SUN_video_resize () { GLboolean r = GL_FALSE; @@ -13099,17 +22767,17 @@ GLboolean glxewGetExtension (const char* name) return _glewSearchExtension(name, start, end); } -#ifdef GLEW_MX -GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) -#else -GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) -#endif +GLenum glxewInit () { + Display* display; int major, minor; const GLubyte* extStart; const GLubyte* extEnd; /* initialize core GLX 1.2 */ - if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GLX_VERSION_11_ONLY; + if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY; + /* check for a display */ + display = glXGetCurrentDisplay(); + if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY; /* initialize flags */ GLXEW_VERSION_1_0 = GL_TRUE; GLXEW_VERSION_1_1 = GL_TRUE; @@ -13117,7 +22785,7 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) GLXEW_VERSION_1_3 = GL_TRUE; GLXEW_VERSION_1_4 = GL_TRUE; /* query GLX version */ - glXQueryVersion(glXGetCurrentDisplay(), &major, &minor); + glXQueryVersion(display, &major, &minor); if (major == 1 && minor <= 3) { switch (minor) @@ -13137,28 +22805,31 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) /* query GLX extension string */ extStart = 0; if (glXGetCurrentDisplay != NULL) - extStart = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS); if (extStart == 0) extStart = (const GLubyte *)""; extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ #ifdef GLX_VERSION_1_3 - if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3(); #endif /* GLX_VERSION_1_3 */ #ifdef GLX_3DFX_multisample GLXEW_3DFX_multisample = _glewSearchExtension("GLX_3DFX_multisample", extStart, extEnd); #endif /* GLX_3DFX_multisample */ #ifdef GLX_AMD_gpu_association GLXEW_AMD_gpu_association = _glewSearchExtension("GLX_AMD_gpu_association", extStart, extEnd); - if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association(); #endif /* GLX_AMD_gpu_association */ #ifdef GLX_ARB_context_flush_control GLXEW_ARB_context_flush_control = _glewSearchExtension("GLX_ARB_context_flush_control", extStart, extEnd); #endif /* GLX_ARB_context_flush_control */ #ifdef GLX_ARB_create_context GLXEW_ARB_create_context = _glewSearchExtension("GLX_ARB_create_context", extStart, extEnd); - if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context(); #endif /* GLX_ARB_create_context */ +#ifdef GLX_ARB_create_context_no_error + GLXEW_ARB_create_context_no_error = _glewSearchExtension("GLX_ARB_create_context_no_error", extStart, extEnd); +#endif /* GLX_ARB_create_context_no_error */ #ifdef GLX_ARB_create_context_profile GLXEW_ARB_create_context_profile = _glewSearchExtension("GLX_ARB_create_context_profile", extStart, extEnd); #endif /* GLX_ARB_create_context_profile */ @@ -13191,11 +22862,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_ATI_pixel_format_float */ #ifdef GLX_ATI_render_texture GLXEW_ATI_render_texture = _glewSearchExtension("GLX_ATI_render_texture", extStart, extEnd); - if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture(); #endif /* GLX_ATI_render_texture */ #ifdef GLX_EXT_buffer_age GLXEW_EXT_buffer_age = _glewSearchExtension("GLX_EXT_buffer_age", extStart, extEnd); #endif /* GLX_EXT_buffer_age */ +#ifdef GLX_EXT_context_priority + GLXEW_EXT_context_priority = _glewSearchExtension("GLX_EXT_context_priority", extStart, extEnd); +#endif /* GLX_EXT_context_priority */ #ifdef GLX_EXT_create_context_es2_profile GLXEW_EXT_create_context_es2_profile = _glewSearchExtension("GLX_EXT_create_context_es2_profile", extStart, extEnd); #endif /* GLX_EXT_create_context_es2_profile */ @@ -13210,8 +22884,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_EXT_framebuffer_sRGB */ #ifdef GLX_EXT_import_context GLXEW_EXT_import_context = _glewSearchExtension("GLX_EXT_import_context", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context(); #endif /* GLX_EXT_import_context */ +#ifdef GLX_EXT_libglvnd + GLXEW_EXT_libglvnd = _glewSearchExtension("GLX_EXT_libglvnd", extStart, extEnd); +#endif /* GLX_EXT_libglvnd */ +#ifdef GLX_EXT_no_config_context + GLXEW_EXT_no_config_context = _glewSearchExtension("GLX_EXT_no_config_context", extStart, extEnd); +#endif /* GLX_EXT_no_config_context */ #ifdef GLX_EXT_scene_marker GLXEW_EXT_scene_marker = _glewSearchExtension("GLX_EXT_scene_marker", extStart, extEnd); #endif /* GLX_EXT_scene_marker */ @@ -13220,14 +22900,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_EXT_stereo_tree */ #ifdef GLX_EXT_swap_control GLXEW_EXT_swap_control = _glewSearchExtension("GLX_EXT_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control(); #endif /* GLX_EXT_swap_control */ #ifdef GLX_EXT_swap_control_tear GLXEW_EXT_swap_control_tear = _glewSearchExtension("GLX_EXT_swap_control_tear", extStart, extEnd); #endif /* GLX_EXT_swap_control_tear */ #ifdef GLX_EXT_texture_from_pixmap GLXEW_EXT_texture_from_pixmap = _glewSearchExtension("GLX_EXT_texture_from_pixmap", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap(); #endif /* GLX_EXT_texture_from_pixmap */ #ifdef GLX_EXT_visual_info GLXEW_EXT_visual_info = _glewSearchExtension("GLX_EXT_visual_info", extStart, extEnd); @@ -13240,76 +22920,82 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_INTEL_swap_event */ #ifdef GLX_MESA_agp_offset GLXEW_MESA_agp_offset = _glewSearchExtension("GLX_MESA_agp_offset", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset(); #endif /* GLX_MESA_agp_offset */ #ifdef GLX_MESA_copy_sub_buffer GLXEW_MESA_copy_sub_buffer = _glewSearchExtension("GLX_MESA_copy_sub_buffer", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer(); #endif /* GLX_MESA_copy_sub_buffer */ #ifdef GLX_MESA_pixmap_colormap GLXEW_MESA_pixmap_colormap = _glewSearchExtension("GLX_MESA_pixmap_colormap", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap(); #endif /* GLX_MESA_pixmap_colormap */ #ifdef GLX_MESA_query_renderer GLXEW_MESA_query_renderer = _glewSearchExtension("GLX_MESA_query_renderer", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer(); #endif /* GLX_MESA_query_renderer */ #ifdef GLX_MESA_release_buffers GLXEW_MESA_release_buffers = _glewSearchExtension("GLX_MESA_release_buffers", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers(); #endif /* GLX_MESA_release_buffers */ #ifdef GLX_MESA_set_3dfx_mode GLXEW_MESA_set_3dfx_mode = _glewSearchExtension("GLX_MESA_set_3dfx_mode", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode(); #endif /* GLX_MESA_set_3dfx_mode */ #ifdef GLX_MESA_swap_control GLXEW_MESA_swap_control = _glewSearchExtension("GLX_MESA_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control(); #endif /* GLX_MESA_swap_control */ #ifdef GLX_NV_copy_buffer GLXEW_NV_copy_buffer = _glewSearchExtension("GLX_NV_copy_buffer", extStart, extEnd); - if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer(); #endif /* GLX_NV_copy_buffer */ #ifdef GLX_NV_copy_image GLXEW_NV_copy_image = _glewSearchExtension("GLX_NV_copy_image", extStart, extEnd); - if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image(); #endif /* GLX_NV_copy_image */ #ifdef GLX_NV_delay_before_swap GLXEW_NV_delay_before_swap = _glewSearchExtension("GLX_NV_delay_before_swap", extStart, extEnd); - if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap(); #endif /* GLX_NV_delay_before_swap */ #ifdef GLX_NV_float_buffer GLXEW_NV_float_buffer = _glewSearchExtension("GLX_NV_float_buffer", extStart, extEnd); #endif /* GLX_NV_float_buffer */ +#ifdef GLX_NV_multigpu_context + GLXEW_NV_multigpu_context = _glewSearchExtension("GLX_NV_multigpu_context", extStart, extEnd); +#endif /* GLX_NV_multigpu_context */ #ifdef GLX_NV_multisample_coverage GLXEW_NV_multisample_coverage = _glewSearchExtension("GLX_NV_multisample_coverage", extStart, extEnd); #endif /* GLX_NV_multisample_coverage */ #ifdef GLX_NV_present_video GLXEW_NV_present_video = _glewSearchExtension("GLX_NV_present_video", extStart, extEnd); - if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video(); #endif /* GLX_NV_present_video */ +#ifdef GLX_NV_robustness_video_memory_purge + GLXEW_NV_robustness_video_memory_purge = _glewSearchExtension("GLX_NV_robustness_video_memory_purge", extStart, extEnd); +#endif /* GLX_NV_robustness_video_memory_purge */ #ifdef GLX_NV_swap_group GLXEW_NV_swap_group = _glewSearchExtension("GLX_NV_swap_group", extStart, extEnd); - if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group(); #endif /* GLX_NV_swap_group */ #ifdef GLX_NV_vertex_array_range GLXEW_NV_vertex_array_range = _glewSearchExtension("GLX_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range(); #endif /* GLX_NV_vertex_array_range */ #ifdef GLX_NV_video_capture GLXEW_NV_video_capture = _glewSearchExtension("GLX_NV_video_capture", extStart, extEnd); - if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture(); #endif /* GLX_NV_video_capture */ #ifdef GLX_NV_video_out GLXEW_NV_video_out = _glewSearchExtension("GLX_NV_video_out", extStart, extEnd); - if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out(); #endif /* GLX_NV_video_out */ #ifdef GLX_OML_swap_method GLXEW_OML_swap_method = _glewSearchExtension("GLX_OML_swap_method", extStart, extEnd); #endif /* GLX_OML_swap_method */ #ifdef GLX_OML_sync_control GLXEW_OML_sync_control = _glewSearchExtension("GLX_OML_sync_control", extStart, extEnd); - if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control(); #endif /* GLX_OML_sync_control */ #ifdef GLX_SGIS_blended_overlay GLXEW_SGIS_blended_overlay = _glewSearchExtension("GLX_SGIS_blended_overlay", extStart, extEnd); @@ -13325,54 +23011,54 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_SGIS_shared_multisample */ #ifdef GLX_SGIX_fbconfig GLXEW_SGIX_fbconfig = _glewSearchExtension("GLX_SGIX_fbconfig", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig(); #endif /* GLX_SGIX_fbconfig */ #ifdef GLX_SGIX_hyperpipe GLXEW_SGIX_hyperpipe = _glewSearchExtension("GLX_SGIX_hyperpipe", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe(); #endif /* GLX_SGIX_hyperpipe */ #ifdef GLX_SGIX_pbuffer GLXEW_SGIX_pbuffer = _glewSearchExtension("GLX_SGIX_pbuffer", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer(); #endif /* GLX_SGIX_pbuffer */ #ifdef GLX_SGIX_swap_barrier GLXEW_SGIX_swap_barrier = _glewSearchExtension("GLX_SGIX_swap_barrier", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier(); #endif /* GLX_SGIX_swap_barrier */ #ifdef GLX_SGIX_swap_group GLXEW_SGIX_swap_group = _glewSearchExtension("GLX_SGIX_swap_group", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group(); #endif /* GLX_SGIX_swap_group */ #ifdef GLX_SGIX_video_resize GLXEW_SGIX_video_resize = _glewSearchExtension("GLX_SGIX_video_resize", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize(); #endif /* GLX_SGIX_video_resize */ #ifdef GLX_SGIX_visual_select_group GLXEW_SGIX_visual_select_group = _glewSearchExtension("GLX_SGIX_visual_select_group", extStart, extEnd); #endif /* GLX_SGIX_visual_select_group */ #ifdef GLX_SGI_cushion GLXEW_SGI_cushion = _glewSearchExtension("GLX_SGI_cushion", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion(); #endif /* GLX_SGI_cushion */ #ifdef GLX_SGI_make_current_read GLXEW_SGI_make_current_read = _glewSearchExtension("GLX_SGI_make_current_read", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read(); #endif /* GLX_SGI_make_current_read */ #ifdef GLX_SGI_swap_control GLXEW_SGI_swap_control = _glewSearchExtension("GLX_SGI_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control(); #endif /* GLX_SGI_swap_control */ #ifdef GLX_SGI_video_sync GLXEW_SGI_video_sync = _glewSearchExtension("GLX_SGI_video_sync", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync(); #endif /* GLX_SGI_video_sync */ #ifdef GLX_SUN_get_transparent_index GLXEW_SUN_get_transparent_index = _glewSearchExtension("GLX_SUN_get_transparent_index", extStart, extEnd); - if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index(); #endif /* GLX_SUN_get_transparent_index */ #ifdef GLX_SUN_video_resize GLXEW_SUN_video_resize = _glewSearchExtension("GLX_SUN_video_resize", extStart, extEnd); - if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize(); #endif /* GLX_SUN_video_resize */ return GLEW_OK; @@ -13401,9 +23087,9 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) static const GLubyte* _glewString[] = { (const GLubyte*)NULL, - (const GLubyte*)"1.13.0", - (const GLubyte*)"1", - (const GLubyte*)"13", + (const GLubyte*)"2.2.0", + (const GLubyte*)"2", + (const GLubyte*)"2", (const GLubyte*)"0" }; const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1; @@ -13414,28 +23100,40 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) GLboolean glewExperimental = GL_FALSE; -#if !defined(GLEW_MX) - GLenum GLEWAPIENTRY glewInit (void) { GLenum r; +#if defined(GLEW_EGL) + PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL; +#endif r = glewContextInit(); if ( r != 0 ) return r; -#if defined(_WIN32) +#if defined(GLEW_EGL) + getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay"); + return eglewInit(getCurrentDisplay()); +#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__) + return r; +#elif defined(_WIN32) return wglewInit(); -#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */ +#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */ return glxewInit(); #else return r; #endif /* _WIN32 */ } -#endif /* !GLEW_MX */ -#ifdef GLEW_MX -GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext* ctx, const char* name) -#else -GLboolean GLEWAPIENTRY glewIsSupported (const char* name) +#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__) +/* GCC requires a DLL entry point even without any standard library included. */ +/* Types extracted from windows.h to avoid polluting the rest of the file. */ +int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved) +{ + (void) instance; + (void) reason; + (void) reserved; + return 1; +} #endif +GLboolean GLEWAPIENTRY glewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -13564,6 +23262,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_VERSION_4_5; continue; } +#endif +#ifdef GL_VERSION_4_6 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_6", 3)) + { + ret = GLEW_VERSION_4_6; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5)) @@ -13599,6 +23304,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_compressed_3DC_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_3DC_texture", 22)) + { + ret = GLEW_AMD_compressed_3DC_texture; + continue; + } +#endif +#ifdef GL_AMD_compressed_ATC_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ATC_texture", 22)) + { + ret = GLEW_AMD_compressed_ATC_texture; + continue; + } +#endif #ifdef GL_AMD_conservative_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) { @@ -13627,6 +23346,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_framebuffer_multisample_advanced + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_advanced", 32)) + { + ret = GLEW_AMD_framebuffer_multisample_advanced; + continue; + } +#endif +#ifdef GL_AMD_framebuffer_sample_positions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sample_positions", 28)) + { + ret = GLEW_AMD_framebuffer_sample_positions; + continue; + } +#endif #ifdef GL_AMD_gcn_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"gcn_shader", 10)) { @@ -13634,6 +23367,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_gpu_shader_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float", 21)) + { + ret = GLEW_AMD_gpu_shader_half_float; + continue; + } +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float_fetch", 27)) + { + ret = GLEW_AMD_gpu_shader_half_float_fetch; + continue; + } +#endif +#ifdef GL_AMD_gpu_shader_int16 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int16", 16)) + { + ret = GLEW_AMD_gpu_shader_int16; + continue; + } +#endif #ifdef GL_AMD_gpu_shader_int64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16)) { @@ -13683,6 +23437,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_program_binary_Z400 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_Z400", 19)) + { + ret = GLEW_AMD_program_binary_Z400; + continue; + } +#endif #ifdef GL_AMD_query_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19)) { @@ -13711,6 +23472,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_shader_ballot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13)) + { + ret = GLEW_AMD_shader_ballot; + continue; + } +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_explicit_vertex_parameter", 32)) + { + ret = GLEW_AMD_shader_explicit_vertex_parameter; + continue; + } +#endif +#ifdef GL_AMD_shader_image_load_store_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store_lod", 27)) + { + ret = GLEW_AMD_shader_image_load_store_lod; + continue; + } +#endif #ifdef GL_AMD_shader_stencil_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21)) { @@ -13746,6 +23528,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_texture_gather_bias_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather_bias_lod", 23)) + { + ret = GLEW_AMD_texture_gather_bias_lod; + continue; + } +#endif #ifdef GL_AMD_texture_texture4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_texture4", 16)) { @@ -13787,6 +23576,16 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_AMD_vertex_shader_viewport_index; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) + { +#ifdef GL_ANDROID_extension_pack_es31a + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_pack_es31a", 20)) + { + ret = GLEW_ANDROID_extension_pack_es31a; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) @@ -13892,6 +23691,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_clip_distance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_distance", 13)) + { + ret = GLEW_APPLE_clip_distance; + continue; + } +#endif +#ifdef GL_APPLE_color_buffer_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_packed_float", 25)) + { + ret = GLEW_APPLE_color_buffer_packed_float; + continue; + } +#endif +#ifdef GL_APPLE_copy_texture_levels + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture_levels", 19)) + { + ret = GLEW_APPLE_copy_texture_levels; + continue; + } +#endif #ifdef GL_APPLE_element_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13)) { @@ -13920,6 +23740,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_framebuffer_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) + { + ret = GLEW_APPLE_framebuffer_multisample; + continue; + } +#endif #ifdef GL_APPLE_object_purgeable if (_glewStrSame3(&pos, &len, (const GLubyte*)"object_purgeable", 16)) { @@ -13955,6 +23782,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) + { + ret = GLEW_APPLE_sync; + continue; + } +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_2D_limited_npot", 23)) + { + ret = GLEW_APPLE_texture_2D_limited_npot; + continue; + } +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) + { + ret = GLEW_APPLE_texture_format_BGRA8888; + continue; + } +#endif +#ifdef GL_APPLE_texture_max_level + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_max_level", 17)) + { + ret = GLEW_APPLE_texture_max_level; + continue; + } +#endif +#ifdef GL_APPLE_texture_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_packed_float", 20)) + { + ret = GLEW_APPLE_texture_packed_float; + continue; + } +#endif #ifdef GL_APPLE_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { @@ -14343,6 +24205,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_gl_spirv + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_spirv", 8)) + { + ret = GLEW_ARB_gl_spirv; + continue; + } +#endif #ifdef GL_ARB_gpu_shader5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) { @@ -14518,6 +24387,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_polygon_offset_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20)) + { + ret = GLEW_ARB_polygon_offset_clamp; + continue; + } +#endif #ifdef GL_ARB_post_depth_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19)) { @@ -14805,6 +24681,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_spirv_extensions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"spirv_extensions", 16)) + { + ret = GLEW_ARB_spirv_extensions; + continue; + } +#endif #ifdef GL_ARB_stencil_texturing if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_texturing", 17)) { @@ -14924,6 +24807,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_texture_filter_anisotropic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26)) + { + ret = GLEW_ARB_texture_filter_anisotropic; + continue; + } +#endif #ifdef GL_ARB_texture_filter_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21)) { @@ -15175,6 +25065,51 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_ARB_window_pos; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) + { +#ifdef GL_ARM_mali_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_program_binary", 19)) + { + ret = GLEW_ARM_mali_program_binary; + continue; + } +#endif +#ifdef GL_ARM_mali_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_shader_binary", 18)) + { + ret = GLEW_ARM_mali_shader_binary; + continue; + } +#endif +#ifdef GL_ARM_rgba8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgba8", 5)) + { + ret = GLEW_ARM_rgba8; + continue; + } +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) + { + ret = GLEW_ARM_shader_framebuffer_fetch; + continue; + } +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_depth_stencil", 38)) + { + ret = GLEW_ARM_shader_framebuffer_fetch_depth_stencil; + continue; + } +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_unnormalized_coordinates", 32)) + { + ret = GLEW_ARM_texture_unnormalized_coordinates; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATIX_", 5)) @@ -15328,6 +25263,23 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_ATI_vertex_streams; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"DMP_", 4)) + { +#ifdef GL_DMP_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14)) + { + ret = GLEW_DMP_program_binary; + continue; + } +#endif +#ifdef GL_DMP_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_DMP_shader_binary; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) @@ -15346,6 +25298,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_EGL_image_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_array", 15)) + { + ret = GLEW_EXT_EGL_image_array; + continue; + } +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_wrap_modes", 29)) + { + ret = GLEW_EXT_EGL_image_external_wrap_modes; + continue; + } +#endif +#ifdef GL_EXT_EGL_image_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_storage", 17)) + { + ret = GLEW_EXT_EGL_image_storage; + continue; + } +#endif +#ifdef GL_EXT_EGL_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_sync", 8)) + { + ret = GLEW_EXT_EGL_sync; + continue; + } +#endif +#ifdef GL_EXT_YUV_target + if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_target", 10)) + { + ret = GLEW_EXT_YUV_target; + continue; + } +#endif #ifdef GL_EXT_abgr if (_glewStrSame3(&pos, &len, (const GLubyte*)"abgr", 4)) { @@ -15353,6 +25340,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_base_instance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13)) + { + ret = GLEW_EXT_base_instance; + continue; + } +#endif #ifdef GL_EXT_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgra", 4)) { @@ -15381,6 +25375,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_blend_func_extended + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19)) + { + ret = GLEW_EXT_blend_func_extended; + continue; + } +#endif #ifdef GL_EXT_blend_func_separate if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19)) { @@ -15409,6 +25410,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_buffer_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14)) + { + ret = GLEW_EXT_buffer_storage; + continue; + } +#endif +#ifdef GL_EXT_clear_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13)) + { + ret = GLEW_EXT_clear_texture; + continue; + } +#endif +#ifdef GL_EXT_clip_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_control", 12)) + { + ret = GLEW_EXT_clip_control; + continue; + } +#endif +#ifdef GL_EXT_clip_cull_distance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_cull_distance", 18)) + { + ret = GLEW_EXT_clip_cull_distance; + continue; + } +#endif #ifdef GL_EXT_clip_volume_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_volume_hint", 16)) { @@ -15423,6 +25452,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_color_buffer_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18)) + { + ret = GLEW_EXT_color_buffer_float; + continue; + } +#endif +#ifdef GL_EXT_color_buffer_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_half_float", 23)) + { + ret = GLEW_EXT_color_buffer_half_float; + continue; + } +#endif #ifdef GL_EXT_color_subtable if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_subtable", 14)) { @@ -15437,6 +25480,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_sub_texture", 32)) + { + ret = GLEW_EXT_compressed_ETC1_RGB8_sub_texture; + continue; + } +#endif +#ifdef GL_EXT_conservative_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) + { + ret = GLEW_EXT_conservative_depth; + continue; + } +#endif #ifdef GL_EXT_convolution if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution", 11)) { @@ -15451,6 +25508,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_copy_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) + { + ret = GLEW_EXT_copy_image; + continue; + } +#endif #ifdef GL_EXT_copy_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture", 12)) { @@ -15486,6 +25550,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_depth_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11)) + { + ret = GLEW_EXT_depth_clamp; + continue; + } +#endif #ifdef GL_EXT_direct_state_access if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19)) { @@ -15493,6 +25564,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_discard_framebuffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"discard_framebuffer", 19)) + { + ret = GLEW_EXT_discard_framebuffer; + continue; + } +#endif +#ifdef GL_EXT_disjoint_timer_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"disjoint_timer_query", 20)) + { + ret = GLEW_EXT_disjoint_timer_query; + continue; + } +#endif +#ifdef GL_EXT_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) + { + ret = GLEW_EXT_draw_buffers; + continue; + } +#endif #ifdef GL_EXT_draw_buffers2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers2", 13)) { @@ -15500,6 +25592,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_draw_buffers_indexed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20)) + { + ret = GLEW_EXT_draw_buffers_indexed; + continue; + } +#endif +#ifdef GL_EXT_draw_elements_base_vertex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25)) + { + ret = GLEW_EXT_draw_elements_base_vertex; + continue; + } +#endif #ifdef GL_EXT_draw_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) { @@ -15514,6 +25620,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_draw_transform_feedback + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_transform_feedback", 23)) + { + ret = GLEW_EXT_draw_transform_feedback; + continue; + } +#endif +#ifdef GL_EXT_external_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"external_buffer", 15)) + { + ret = GLEW_EXT_external_buffer; + continue; + } +#endif +#ifdef GL_EXT_float_blend + if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_blend", 11)) + { + ret = GLEW_EXT_float_blend; + continue; + } +#endif #ifdef GL_EXT_fog_coord if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_coord", 9)) { @@ -15521,6 +25648,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_frag_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"frag_depth", 10)) + { + ret = GLEW_EXT_frag_depth; + continue; + } +#endif #ifdef GL_EXT_fragment_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting", 17)) { @@ -15563,6 +25697,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_geometry_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19)) + { + ret = GLEW_EXT_geometry_point_size; + continue; + } +#endif +#ifdef GL_EXT_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15)) + { + ret = GLEW_EXT_geometry_shader; + continue; + } +#endif #ifdef GL_EXT_geometry_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16)) { @@ -15584,6 +25732,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_gpu_shader5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) + { + ret = GLEW_EXT_gpu_shader5; + continue; + } +#endif #ifdef GL_EXT_histogram if (_glewStrSame3(&pos, &len, (const GLubyte*)"histogram", 9)) { @@ -15619,6 +25774,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_instanced_arrays + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) + { + ret = GLEW_EXT_instanced_arrays; + continue; + } +#endif #ifdef GL_EXT_light_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_texture", 13)) { @@ -15626,6 +25788,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_map_buffer_range + if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16)) + { + ret = GLEW_EXT_map_buffer_range; + continue; + } +#endif +#ifdef GL_EXT_memory_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object", 13)) + { + ret = GLEW_EXT_memory_object; + continue; + } +#endif +#ifdef GL_EXT_memory_object_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_fd", 16)) + { + ret = GLEW_EXT_memory_object_fd; + continue; + } +#endif +#ifdef GL_EXT_memory_object_win32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_win32", 19)) + { + ret = GLEW_EXT_memory_object_win32; + continue; + } +#endif #ifdef GL_EXT_misc_attribute if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_attribute", 14)) { @@ -15640,6 +25830,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_multi_draw_indirect + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19)) + { + ret = GLEW_EXT_multi_draw_indirect; + continue; + } +#endif +#ifdef GL_EXT_multiple_textures + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiple_textures", 17)) + { + ret = GLEW_EXT_multiple_textures; + continue; + } +#endif #ifdef GL_EXT_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { @@ -15647,6 +25851,62 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_multisample_compatibility + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_compatibility", 25)) + { + ret = GLEW_EXT_multisample_compatibility; + continue; + } +#endif +#ifdef GL_EXT_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30)) + { + ret = GLEW_EXT_multisampled_render_to_texture; + continue; + } +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture2", 31)) + { + ret = GLEW_EXT_multisampled_render_to_texture2; + continue; + } +#endif +#ifdef GL_EXT_multiview_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_draw_buffers", 22)) + { + ret = GLEW_EXT_multiview_draw_buffers; + continue; + } +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_tessellation_geometry_shader", 38)) + { + ret = GLEW_EXT_multiview_tessellation_geometry_shader; + continue; + } +#endif +#ifdef GL_EXT_multiview_texture_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_texture_multisample", 29)) + { + ret = GLEW_EXT_multiview_texture_multisample; + continue; + } +#endif +#ifdef GL_EXT_multiview_timer_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_timer_query", 21)) + { + ret = GLEW_EXT_multiview_timer_query; + continue; + } +#endif +#ifdef GL_EXT_occlusion_query_boolean + if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query_boolean", 23)) + { + ret = GLEW_EXT_occlusion_query_boolean; + continue; + } +#endif #ifdef GL_EXT_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { @@ -15724,6 +25984,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_primitive_bounding_box + if (_glewStrSame3(&pos, &len, (const GLubyte*)"primitive_bounding_box", 22)) + { + ret = GLEW_EXT_primitive_bounding_box; + continue; + } +#endif +#ifdef GL_EXT_protected_textures + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_textures", 18)) + { + ret = GLEW_EXT_protected_textures; + continue; + } +#endif #ifdef GL_EXT_provoking_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16)) { @@ -15731,6 +26005,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_pvrtc_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pvrtc_sRGB", 10)) + { + ret = GLEW_EXT_pvrtc_sRGB; + continue; + } +#endif #ifdef GL_EXT_raster_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"raster_multisample", 18)) { @@ -15738,6 +26019,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_read_format_bgra + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format_bgra", 16)) + { + ret = GLEW_EXT_read_format_bgra; + continue; + } +#endif +#ifdef GL_EXT_render_snorm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_snorm", 12)) + { + ret = GLEW_EXT_render_snorm; + continue; + } +#endif #ifdef GL_EXT_rescale_normal if (_glewStrSame3(&pos, &len, (const GLubyte*)"rescale_normal", 14)) { @@ -15745,6 +26040,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_robustness + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10)) + { + ret = GLEW_EXT_robustness; + continue; + } +#endif +#ifdef GL_EXT_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB", 4)) + { + ret = GLEW_EXT_sRGB; + continue; + } +#endif +#ifdef GL_EXT_sRGB_write_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_write_control", 18)) + { + ret = GLEW_EXT_sRGB_write_control; + continue; + } +#endif #ifdef GL_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { @@ -15759,6 +26075,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_semaphore + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore", 9)) + { + ret = GLEW_EXT_semaphore; + continue; + } +#endif +#ifdef GL_EXT_semaphore_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_fd", 12)) + { + ret = GLEW_EXT_semaphore_fd; + continue; + } +#endif +#ifdef GL_EXT_semaphore_win32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_win32", 15)) + { + ret = GLEW_EXT_semaphore_win32; + continue; + } +#endif #ifdef GL_EXT_separate_shader_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23)) { @@ -15773,6 +26110,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_framebuffer_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) + { + ret = GLEW_EXT_shader_framebuffer_fetch; + continue; + } +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_non_coherent", 37)) + { + ret = GLEW_EXT_shader_framebuffer_fetch_non_coherent; + continue; + } +#endif +#ifdef GL_EXT_shader_group_vote + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17)) + { + ret = GLEW_EXT_shader_group_vote; + continue; + } +#endif #ifdef GL_EXT_shader_image_load_formatted if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_formatted", 27)) { @@ -15787,6 +26145,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_implicit_conversions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_implicit_conversions", 27)) + { + ret = GLEW_EXT_shader_implicit_conversions; + continue; + } +#endif #ifdef GL_EXT_shader_integer_mix if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_mix", 18)) { @@ -15794,6 +26159,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_io_blocks + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16)) + { + ret = GLEW_EXT_shader_io_blocks; + continue; + } +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_non_constant_global_initializers", 39)) + { + ret = GLEW_EXT_shader_non_constant_global_initializers; + continue; + } +#endif +#ifdef GL_EXT_shader_pixel_local_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage", 26)) + { + ret = GLEW_EXT_shader_pixel_local_storage; + continue; + } +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage2", 27)) + { + ret = GLEW_EXT_shader_pixel_local_storage2; + continue; + } +#endif +#ifdef GL_EXT_shader_texture_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18)) + { + ret = GLEW_EXT_shader_texture_lod; + continue; + } +#endif #ifdef GL_EXT_shadow_funcs if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_funcs", 12)) { @@ -15801,6 +26201,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shadow_samplers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers", 15)) + { + ret = GLEW_EXT_shadow_samplers; + continue; + } +#endif #ifdef GL_EXT_shared_texture_palette if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_texture_palette", 22)) { @@ -15808,6 +26215,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_sparse_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14)) + { + ret = GLEW_EXT_sparse_texture; + continue; + } +#endif #ifdef GL_EXT_sparse_texture2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15)) { @@ -15815,6 +26229,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_static_vertex_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"static_vertex_array", 19)) + { + ret = GLEW_EXT_static_vertex_array; + continue; + } +#endif #ifdef GL_EXT_stencil_clear_tag if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_clear_tag", 17)) { @@ -15843,6 +26264,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_tessellation_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23)) + { + ret = GLEW_EXT_tessellation_point_size; + continue; + } +#endif +#ifdef GL_EXT_tessellation_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19)) + { + ret = GLEW_EXT_tessellation_shader; + continue; + } +#endif #ifdef GL_EXT_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture", 7)) { @@ -15864,6 +26299,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_EXT_texture_border_clamp; + continue; + } +#endif +#ifdef GL_EXT_texture_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14)) + { + ret = GLEW_EXT_texture_buffer; + continue; + } +#endif #ifdef GL_EXT_texture_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21)) { @@ -15871,6 +26320,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode", 36)) + { + ret = GLEW_EXT_texture_compression_astc_decode_mode; + continue; + } +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode_rgb9e5", 43)) + { + ret = GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; + continue; + } +#endif +#ifdef GL_EXT_texture_compression_bptc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24)) + { + ret = GLEW_EXT_texture_compression_bptc; + continue; + } +#endif #ifdef GL_EXT_texture_compression_dxt1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24)) { @@ -15899,6 +26369,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_srgb", 29)) + { + ret = GLEW_EXT_texture_compression_s3tc_srgb; + continue; + } +#endif #ifdef GL_EXT_texture_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) { @@ -15906,6 +26383,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_cube_map_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) + { + ret = GLEW_EXT_texture_cube_map_array; + continue; + } +#endif #ifdef GL_EXT_texture_edge_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18)) { @@ -15955,6 +26439,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_format_BGRA8888 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) + { + ret = GLEW_EXT_texture_format_BGRA8888; + continue; + } +#endif +#ifdef GL_EXT_texture_format_sRGB_override + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_sRGB_override", 28)) + { + ret = GLEW_EXT_texture_format_sRGB_override; + continue; + } +#endif #ifdef GL_EXT_texture_integer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_integer", 15)) { @@ -15976,6 +26474,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp_to_edge", 28)) + { + ret = GLEW_EXT_texture_mirror_clamp_to_edge; + continue; + } +#endif +#ifdef GL_EXT_texture_norm16 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_norm16", 14)) + { + ret = GLEW_EXT_texture_norm16; + continue; + } +#endif #ifdef GL_EXT_texture_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_object", 14)) { @@ -15990,6 +26502,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_query_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_lod", 17)) + { + ret = GLEW_EXT_texture_query_lod; + continue; + } +#endif #ifdef GL_EXT_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { @@ -15997,6 +26516,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_rg + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10)) + { + ret = GLEW_EXT_texture_rg; + continue; + } +#endif #ifdef GL_EXT_texture_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB", 12)) { @@ -16004,6 +26530,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_sRGB_R8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_R8", 15)) + { + ret = GLEW_EXT_texture_sRGB_R8; + continue; + } +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_RG8", 16)) + { + ret = GLEW_EXT_texture_sRGB_RG8; + continue; + } +#endif #ifdef GL_EXT_texture_sRGB_decode if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_decode", 19)) { @@ -16011,6 +26551,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_shadow_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shadow_lod", 18)) + { + ret = GLEW_EXT_texture_shadow_lod; + continue; + } +#endif #ifdef GL_EXT_texture_shared_exponent if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shared_exponent", 23)) { @@ -16025,6 +26572,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15)) + { + ret = GLEW_EXT_texture_storage; + continue; + } +#endif #ifdef GL_EXT_texture_swizzle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15)) { @@ -16032,6 +26586,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_type_2_10_10_10_REV", 27)) + { + ret = GLEW_EXT_texture_type_2_10_10_10_REV; + continue; + } +#endif +#ifdef GL_EXT_texture_view + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) + { + ret = GLEW_EXT_texture_view; + continue; + } +#endif #ifdef GL_EXT_timer_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11)) { @@ -16046,6 +26614,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_unpack_subimage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"unpack_subimage", 15)) + { + ret = GLEW_EXT_unpack_subimage; + continue; + } +#endif #ifdef GL_EXT_vertex_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array", 12)) { @@ -16060,6 +26635,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_vertex_array_setXXX + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_setXXX", 19)) + { + ret = GLEW_EXT_vertex_array_setXXX; + continue; + } +#endif #ifdef GL_EXT_vertex_attrib_64bit if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19)) { @@ -16081,12 +26663,36 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_win32_keyed_mutex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"win32_keyed_mutex", 17)) + { + ret = GLEW_EXT_win32_keyed_mutex; + continue; + } +#endif +#ifdef GL_EXT_window_rectangles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_rectangles", 17)) + { + ret = GLEW_EXT_window_rectangles; + continue; + } +#endif #ifdef GL_EXT_x11_sync_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"x11_sync_object", 15)) { ret = GLEW_EXT_x11_sync_object; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"FJ_", 3)) + { +#ifdef GL_FJ_shader_binary_GCCSO + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary_GCCSO", 19)) + { + ret = GLEW_FJ_shader_binary_GCCSO; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"GREMEDY_", 8)) @@ -16180,6 +26786,79 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_IBM_vertex_array_lists; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4)) + { +#ifdef GL_IMG_bindless_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16)) + { + ret = GLEW_IMG_bindless_texture; + continue; + } +#endif +#ifdef GL_IMG_framebuffer_downsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_downsample", 22)) + { + ret = GLEW_IMG_framebuffer_downsample; + continue; + } +#endif +#ifdef GL_IMG_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30)) + { + ret = GLEW_IMG_multisampled_render_to_texture; + continue; + } +#endif +#ifdef GL_IMG_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14)) + { + ret = GLEW_IMG_program_binary; + continue; + } +#endif +#ifdef GL_IMG_read_format + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11)) + { + ret = GLEW_IMG_read_format; + continue; + } +#endif +#ifdef GL_IMG_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_IMG_shader_binary; + continue; + } +#endif +#ifdef GL_IMG_texture_compression_pvrtc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc", 25)) + { + ret = GLEW_IMG_texture_compression_pvrtc; + continue; + } +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc2", 26)) + { + ret = GLEW_IMG_texture_compression_pvrtc2; + continue; + } +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_enhanced_fixed_function", 35)) + { + ret = GLEW_IMG_texture_env_enhanced_fixed_function; + continue; + } +#endif +#ifdef GL_IMG_texture_filter_cubic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_cubic", 20)) + { + ret = GLEW_IMG_texture_filter_cubic; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INGR_", 5)) @@ -16201,6 +26880,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6)) { +#ifdef GL_INTEL_blackhole_render + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blackhole_render", 16)) + { + ret = GLEW_INTEL_blackhole_render; + continue; + } +#endif +#ifdef GL_INTEL_conservative_rasterization + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_rasterization", 26)) + { + ret = GLEW_INTEL_conservative_rasterization; + continue; + } +#endif #ifdef GL_INTEL_fragment_shader_ordering if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_ordering", 24)) { @@ -16236,6 +26929,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_INTEL_shader_integer_functions2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions2", 25)) + { + ret = GLEW_INTEL_shader_integer_functions2; + continue; + } +#endif #ifdef GL_INTEL_texture_scissor if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scissor", 15)) { @@ -16281,6 +26981,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_KHR_parallel_shader_compile + if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23)) + { + ret = GLEW_KHR_parallel_shader_compile; + continue; + } +#endif #ifdef GL_KHR_robust_buffer_access_behavior if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29)) { @@ -16295,6 +27002,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_KHR_shader_subgroup + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup", 15)) + { + ret = GLEW_KHR_shader_subgroup; + continue; + } +#endif #ifdef GL_KHR_texture_compression_astc_hdr if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_hdr", 28)) { @@ -16308,6 +27022,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_KHR_texture_compression_astc_ldr; continue; } +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_sliced_3d", 34)) + { + ret = GLEW_KHR_texture_compression_astc_sliced_3d; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"KTX_", 4)) @@ -16332,6 +27053,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) { +#ifdef GL_MESA_framebuffer_flip_y + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_flip_y", 18)) + { + ret = GLEW_MESA_framebuffer_flip_y; + continue; + } +#endif #ifdef GL_MESA_pack_invert if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_invert", 11)) { @@ -16339,6 +27067,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_MESA_program_binary_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_formats", 22)) + { + ret = GLEW_MESA_program_binary_formats; + continue; + } +#endif #ifdef GL_MESA_resize_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"resize_buffers", 14)) { @@ -16346,6 +27081,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_MESA_shader_integer_functions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions", 24)) + { + ret = GLEW_MESA_shader_integer_functions; + continue; + } +#endif +#ifdef GL_MESA_tile_raster_order + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tile_raster_order", 17)) + { + ret = GLEW_MESA_tile_raster_order; + continue; + } +#endif #ifdef GL_MESA_window_pos if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10)) { @@ -16363,6 +27112,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NVX_", 4)) { +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_multi_draw_buffers", 42)) + { + ret = GLEW_NVX_blend_equation_advanced_multi_draw_buffers; + continue; + } +#endif #ifdef GL_NVX_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { @@ -16376,10 +27132,59 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_NVX_gpu_memory_info; continue; } +#endif +#ifdef GL_NVX_gpu_multicast2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast2", 14)) + { + ret = GLEW_NVX_gpu_multicast2; + continue; + } +#endif +#ifdef GL_NVX_linked_gpu_multicast + if (_glewStrSame3(&pos, &len, (const GLubyte*)"linked_gpu_multicast", 20)) + { + ret = GLEW_NVX_linked_gpu_multicast; + continue; + } +#endif +#ifdef GL_NVX_progress_fence + if (_glewStrSame3(&pos, &len, (const GLubyte*)"progress_fence", 14)) + { + ret = GLEW_NVX_progress_fence; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { +#ifdef GL_NV_3dvision_settings + if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_settings", 17)) + { + ret = GLEW_NV_3dvision_settings; + continue; + } +#endif +#ifdef GL_NV_EGL_stream_consumer_external + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_stream_consumer_external", 28)) + { + ret = GLEW_NV_EGL_stream_consumer_external; + continue; + } +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_to_coverage_dither_control", 32)) + { + ret = GLEW_NV_alpha_to_coverage_dither_control; + continue; + } +#endif +#ifdef GL_NV_bgr + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgr", 3)) + { + ret = GLEW_NV_bgr; + continue; + } +#endif #ifdef GL_NV_bindless_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect", 28)) { @@ -16415,6 +27220,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_blend_minmax_factor + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19)) + { + ret = GLEW_NV_blend_minmax_factor; + continue; + } +#endif #ifdef GL_NV_blend_square if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_square", 12)) { @@ -16422,6 +27234,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_clip_space_w_scaling + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_space_w_scaling", 20)) + { + ret = GLEW_NV_clip_space_w_scaling; + continue; + } +#endif +#ifdef GL_NV_command_list + if (_glewStrSame3(&pos, &len, (const GLubyte*)"command_list", 12)) + { + ret = GLEW_NV_command_list; + continue; + } +#endif #ifdef GL_NV_compute_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_program5", 16)) { @@ -16429,6 +27255,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_compute_shader_derivatives + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_shader_derivatives", 26)) + { + ret = GLEW_NV_compute_shader_derivatives; + continue; + } +#endif #ifdef GL_NV_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { @@ -16450,6 +27283,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_conservative_raster_pre_snap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap", 28)) + { + ret = GLEW_NV_conservative_raster_pre_snap; + continue; + } +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap_triangles", 38)) + { + ret = GLEW_NV_conservative_raster_pre_snap_triangles; + continue; + } +#endif +#ifdef GL_NV_conservative_raster_underestimation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_underestimation", 35)) + { + ret = GLEW_NV_conservative_raster_underestimation; + continue; + } +#endif +#ifdef GL_NV_copy_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11)) + { + ret = GLEW_NV_copy_buffer; + continue; + } +#endif #ifdef GL_NV_copy_depth_to_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_depth_to_color", 19)) { @@ -16485,6 +27346,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_depth_nonlinear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15)) + { + ret = GLEW_NV_depth_nonlinear; + continue; + } +#endif #ifdef GL_NV_depth_range_unclamped if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_range_unclamped", 21)) { @@ -16492,6 +27360,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) + { + ret = GLEW_NV_draw_buffers; + continue; + } +#endif +#ifdef GL_NV_draw_instanced + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) + { + ret = GLEW_NV_draw_instanced; + continue; + } +#endif #ifdef GL_NV_draw_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12)) { @@ -16499,6 +27381,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_draw_vulkan_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_vulkan_image", 17)) + { + ret = GLEW_NV_draw_vulkan_image; + continue; + } +#endif #ifdef GL_NV_evaluators if (_glewStrSame3(&pos, &len, (const GLubyte*)"evaluators", 10)) { @@ -16506,6 +27395,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_explicit_attrib_location + if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24)) + { + ret = GLEW_NV_explicit_attrib_location; + continue; + } +#endif #ifdef GL_NV_explicit_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_multisample", 20)) { @@ -16513,6 +27409,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_fbo_color_attachments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_color_attachments", 21)) + { + ret = GLEW_NV_fbo_color_attachments; + continue; + } +#endif #ifdef GL_NV_fence if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5)) { @@ -16576,6 +27479,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_fragment_shader_barycentric + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_barycentric", 27)) + { + ret = GLEW_NV_fragment_shader_barycentric; + continue; + } +#endif #ifdef GL_NV_fragment_shader_interlock if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25)) { @@ -16583,6 +27493,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_framebuffer_blit + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16)) + { + ret = GLEW_NV_framebuffer_blit; + continue; + } +#endif #ifdef GL_NV_framebuffer_mixed_samples if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_mixed_samples", 25)) { @@ -16590,6 +27507,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_framebuffer_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) + { + ret = GLEW_NV_framebuffer_multisample; + continue; + } +#endif #ifdef GL_NV_framebuffer_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_coverage", 32)) { @@ -16597,6 +27521,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_generate_mipmap_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap_sRGB", 20)) + { + ret = GLEW_NV_generate_mipmap_sRGB; + continue; + } +#endif #ifdef GL_NV_geometry_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_program4", 17)) { @@ -16618,6 +27549,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_gpu_multicast + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast", 13)) + { + ret = GLEW_NV_gpu_multicast; + continue; + } +#endif #ifdef GL_NV_gpu_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program4", 12)) { @@ -16660,6 +27598,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_image_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_formats", 13)) + { + ret = GLEW_NV_image_formats; + continue; + } +#endif +#ifdef GL_NV_instanced_arrays + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) + { + ret = GLEW_NV_instanced_arrays; + continue; + } +#endif #ifdef GL_NV_internalformat_sample_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_sample_query", 27)) { @@ -16674,6 +27626,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_memory_attachment + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_attachment", 17)) + { + ret = GLEW_NV_memory_attachment; + continue; + } +#endif +#ifdef GL_NV_mesh_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mesh_shader", 11)) + { + ret = GLEW_NV_mesh_shader; + continue; + } +#endif #ifdef GL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -16688,6 +27654,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_non_square_matrices + if (_glewStrSame3(&pos, &len, (const GLubyte*)"non_square_matrices", 19)) + { + ret = GLEW_NV_non_square_matrices; + continue; + } +#endif #ifdef GL_NV_occlusion_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15)) { @@ -16695,6 +27668,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_pack_subimage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_subimage", 13)) + { + ret = GLEW_NV_pack_subimage; + continue; + } +#endif #ifdef GL_NV_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { @@ -16702,6 +27682,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12)) + { + ret = GLEW_NV_packed_float; + continue; + } +#endif +#ifdef GL_NV_packed_float_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float_linear", 19)) + { + ret = GLEW_NV_packed_float_linear; + continue; + } +#endif #ifdef GL_NV_parameter_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object", 23)) { @@ -16730,6 +27724,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_pixel_buffer_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19)) + { + ret = GLEW_NV_pixel_buffer_object; + continue; + } +#endif #ifdef GL_NV_pixel_data_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_data_range", 16)) { @@ -16737,6 +27738,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_platform_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_binary", 15)) + { + ret = GLEW_NV_platform_binary; + continue; + } +#endif #ifdef GL_NV_point_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) { @@ -16744,6 +27752,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_polygon_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_mode", 12)) + { + ret = GLEW_NV_polygon_mode; + continue; + } +#endif #ifdef GL_NV_present_video if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13)) { @@ -16758,6 +27773,48 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_query_resource_tag + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_resource_tag", 18)) + { + ret = GLEW_NV_query_resource_tag; + continue; + } +#endif +#ifdef GL_NV_read_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer", 11)) + { + ret = GLEW_NV_read_buffer; + continue; + } +#endif +#ifdef GL_NV_read_buffer_front + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer_front", 17)) + { + ret = GLEW_NV_read_buffer_front; + continue; + } +#endif +#ifdef GL_NV_read_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth", 10)) + { + ret = GLEW_NV_read_depth; + continue; + } +#endif +#ifdef GL_NV_read_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth_stencil", 18)) + { + ret = GLEW_NV_read_depth_stencil; + continue; + } +#endif +#ifdef GL_NV_read_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_stencil", 12)) + { + ret = GLEW_NV_read_stencil; + continue; + } +#endif #ifdef GL_NV_register_combiners if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners", 18)) { @@ -16772,6 +27829,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_representative_fragment_test + if (_glewStrSame3(&pos, &len, (const GLubyte*)"representative_fragment_test", 28)) + { + ret = GLEW_NV_representative_fragment_test; + continue; + } +#endif +#ifdef GL_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = GLEW_NV_robustness_video_memory_purge; + continue; + } +#endif +#ifdef GL_NV_sRGB_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_formats", 12)) + { + ret = GLEW_NV_sRGB_formats; + continue; + } +#endif #ifdef GL_NV_sample_locations if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16)) { @@ -16786,6 +27864,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_scissor_exclusive + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scissor_exclusive", 17)) + { + ret = GLEW_NV_scissor_exclusive; + continue; + } +#endif #ifdef GL_NV_shader_atomic_counters if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22)) { @@ -16800,6 +27885,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_atomic_float64 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float64", 21)) + { + ret = GLEW_NV_shader_atomic_float64; + continue; + } +#endif #ifdef GL_NV_shader_atomic_fp16_vector if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_fp16_vector", 25)) { @@ -16821,6 +27913,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_noperspective_interpolation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_noperspective_interpolation", 34)) + { + ret = GLEW_NV_shader_noperspective_interpolation; + continue; + } +#endif #ifdef GL_NV_shader_storage_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28)) { @@ -16828,6 +27927,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_subgroup_partitioned + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup_partitioned", 27)) + { + ret = GLEW_NV_shader_subgroup_partitioned; + continue; + } +#endif +#ifdef GL_NV_shader_texture_footprint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_footprint", 24)) + { + ret = GLEW_NV_shader_texture_footprint; + continue; + } +#endif #ifdef GL_NV_shader_thread_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_group", 19)) { @@ -16842,6 +27955,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shading_rate_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_rate_image", 18)) + { + ret = GLEW_NV_shading_rate_image; + continue; + } +#endif +#ifdef GL_NV_shadow_samplers_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_array", 21)) + { + ret = GLEW_NV_shadow_samplers_array; + continue; + } +#endif +#ifdef GL_NV_shadow_samplers_cube + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_cube", 20)) + { + ret = GLEW_NV_shadow_samplers_cube; + continue; + } +#endif +#ifdef GL_NV_stereo_view_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_view_rendering", 21)) + { + ret = GLEW_NV_stereo_view_rendering; + continue; + } +#endif #ifdef GL_NV_tessellation_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_program5", 21)) { @@ -16863,6 +28004,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13)) + { + ret = GLEW_NV_texture_array; + continue; + } +#endif #ifdef GL_NV_texture_barrier if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15)) { @@ -16870,6 +28018,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_NV_texture_border_clamp; + continue; + } +#endif +#ifdef GL_NV_texture_compression_latc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24)) + { + ret = GLEW_NV_texture_compression_latc; + continue; + } +#endif +#ifdef GL_NV_texture_compression_s3tc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24)) + { + ret = GLEW_NV_texture_compression_s3tc; + continue; + } +#endif +#ifdef GL_NV_texture_compression_s3tc_update + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_update", 31)) + { + ret = GLEW_NV_texture_compression_s3tc_update; + continue; + } +#endif #ifdef GL_NV_texture_compression_vtc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_vtc", 23)) { @@ -16898,6 +28074,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_npot_2D_mipmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot_2D_mipmap", 22)) + { + ret = GLEW_NV_texture_npot_2D_mipmap; + continue; + } +#endif #ifdef GL_NV_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { @@ -16905,6 +28088,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_rectangle_compressed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle_compressed", 28)) + { + ret = GLEW_NV_texture_rectangle_compressed; + continue; + } +#endif #ifdef GL_NV_texture_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader", 14)) { @@ -16954,6 +28144,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_vdpau_interop2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vdpau_interop2", 14)) + { + ret = GLEW_NV_vdpau_interop2; + continue; + } +#endif #ifdef GL_NV_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { @@ -17031,16 +28228,72 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_viewport_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14)) + { + ret = GLEW_NV_viewport_array; + continue; + } +#endif #ifdef GL_NV_viewport_array2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array2", 15)) { ret = GLEW_NV_viewport_array2; continue; } +#endif +#ifdef GL_NV_viewport_swizzle + if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_swizzle", 16)) + { + ret = GLEW_NV_viewport_swizzle; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OES_", 4)) { +#ifdef GL_OES_EGL_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image", 9)) + { + ret = GLEW_OES_EGL_image; + continue; + } +#endif +#ifdef GL_OES_EGL_image_external + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external", 18)) + { + ret = GLEW_OES_EGL_image_external; + continue; + } +#endif +#ifdef GL_OES_EGL_image_external_essl3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_essl3", 24)) + { + ret = GLEW_OES_EGL_image_external_essl3; + continue; + } +#endif +#ifdef GL_OES_blend_equation_separate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_separate", 23)) + { + ret = GLEW_OES_blend_equation_separate; + continue; + } +#endif +#ifdef GL_OES_blend_func_separate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19)) + { + ret = GLEW_OES_blend_func_separate; + continue; + } +#endif +#ifdef GL_OES_blend_subtract + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_subtract", 14)) + { + ret = GLEW_OES_blend_subtract; + continue; + } +#endif #ifdef GL_OES_byte_coordinates if (_glewStrSame3(&pos, &len, (const GLubyte*)"byte_coordinates", 16)) { @@ -17048,6 +28301,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_texture", 28)) + { + ret = GLEW_OES_compressed_ETC1_RGB8_texture; + continue; + } +#endif #ifdef GL_OES_compressed_paletted_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_paletted_texture", 27)) { @@ -17055,6 +28315,160 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_copy_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) + { + ret = GLEW_OES_copy_image; + continue; + } +#endif +#ifdef GL_OES_depth24 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth24", 7)) + { + ret = GLEW_OES_depth24; + continue; + } +#endif +#ifdef GL_OES_depth32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth32", 7)) + { + ret = GLEW_OES_depth32; + continue; + } +#endif +#ifdef GL_OES_depth_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) + { + ret = GLEW_OES_depth_texture; + continue; + } +#endif +#ifdef GL_OES_depth_texture_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture_cube_map", 22)) + { + ret = GLEW_OES_depth_texture_cube_map; + continue; + } +#endif +#ifdef GL_OES_draw_buffers_indexed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20)) + { + ret = GLEW_OES_draw_buffers_indexed; + continue; + } +#endif +#ifdef GL_OES_draw_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12)) + { + ret = GLEW_OES_draw_texture; + continue; + } +#endif +#ifdef GL_OES_element_index_uint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_index_uint", 18)) + { + ret = GLEW_OES_element_index_uint; + continue; + } +#endif +#ifdef GL_OES_extended_matrix_palette + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_matrix_palette", 23)) + { + ret = GLEW_OES_extended_matrix_palette; + continue; + } +#endif +#ifdef GL_OES_fbo_render_mipmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_render_mipmap", 17)) + { + ret = GLEW_OES_fbo_render_mipmap; + continue; + } +#endif +#ifdef GL_OES_fragment_precision_high + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_precision_high", 23)) + { + ret = GLEW_OES_fragment_precision_high; + continue; + } +#endif +#ifdef GL_OES_framebuffer_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18)) + { + ret = GLEW_OES_framebuffer_object; + continue; + } +#endif +#ifdef GL_OES_geometry_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19)) + { + ret = GLEW_OES_geometry_point_size; + continue; + } +#endif +#ifdef GL_OES_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15)) + { + ret = GLEW_OES_geometry_shader; + continue; + } +#endif +#ifdef GL_OES_get_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_program_binary", 18)) + { + ret = GLEW_OES_get_program_binary; + continue; + } +#endif +#ifdef GL_OES_gpu_shader5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) + { + ret = GLEW_OES_gpu_shader5; + continue; + } +#endif +#ifdef GL_OES_mapbuffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mapbuffer", 9)) + { + ret = GLEW_OES_mapbuffer; + continue; + } +#endif +#ifdef GL_OES_matrix_get + if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_get", 10)) + { + ret = GLEW_OES_matrix_get; + continue; + } +#endif +#ifdef GL_OES_matrix_palette + if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_palette", 14)) + { + ret = GLEW_OES_matrix_palette; + continue; + } +#endif +#ifdef GL_OES_packed_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) + { + ret = GLEW_OES_packed_depth_stencil; + continue; + } +#endif +#ifdef GL_OES_point_size_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_size_array", 16)) + { + ret = GLEW_OES_point_size_array; + continue; + } +#endif +#ifdef GL_OES_point_sprite + if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) + { + ret = GLEW_OES_point_sprite; + continue; + } +#endif #ifdef GL_OES_read_format if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11)) { @@ -17062,12 +28476,215 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_required_internalformat + if (_glewStrSame3(&pos, &len, (const GLubyte*)"required_internalformat", 23)) + { + ret = GLEW_OES_required_internalformat; + continue; + } +#endif +#ifdef GL_OES_rgb8_rgba8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgb8_rgba8", 10)) + { + ret = GLEW_OES_rgb8_rgba8; + continue; + } +#endif +#ifdef GL_OES_sample_shading + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_shading", 14)) + { + ret = GLEW_OES_sample_shading; + continue; + } +#endif +#ifdef GL_OES_sample_variables + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_variables", 16)) + { + ret = GLEW_OES_sample_variables; + continue; + } +#endif +#ifdef GL_OES_shader_image_atomic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_atomic", 19)) + { + ret = GLEW_OES_shader_image_atomic; + continue; + } +#endif +#ifdef GL_OES_shader_io_blocks + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16)) + { + ret = GLEW_OES_shader_io_blocks; + continue; + } +#endif +#ifdef GL_OES_shader_multisample_interpolation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_multisample_interpolation", 32)) + { + ret = GLEW_OES_shader_multisample_interpolation; + continue; + } +#endif #ifdef GL_OES_single_precision if (_glewStrSame3(&pos, &len, (const GLubyte*)"single_precision", 16)) { ret = GLEW_OES_single_precision; continue; } +#endif +#ifdef GL_OES_standard_derivatives + if (_glewStrSame3(&pos, &len, (const GLubyte*)"standard_derivatives", 20)) + { + ret = GLEW_OES_standard_derivatives; + continue; + } +#endif +#ifdef GL_OES_stencil1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil1", 8)) + { + ret = GLEW_OES_stencil1; + continue; + } +#endif +#ifdef GL_OES_stencil4 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil4", 8)) + { + ret = GLEW_OES_stencil4; + continue; + } +#endif +#ifdef GL_OES_stencil8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil8", 8)) + { + ret = GLEW_OES_stencil8; + continue; + } +#endif +#ifdef GL_OES_surfaceless_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19)) + { + ret = GLEW_OES_surfaceless_context; + continue; + } +#endif +#ifdef GL_OES_tessellation_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23)) + { + ret = GLEW_OES_tessellation_point_size; + continue; + } +#endif +#ifdef GL_OES_tessellation_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19)) + { + ret = GLEW_OES_tessellation_shader; + continue; + } +#endif +#ifdef GL_OES_texture_3D + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_3D", 10)) + { + ret = GLEW_OES_texture_3D; + continue; + } +#endif +#ifdef GL_OES_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_OES_texture_border_clamp; + continue; + } +#endif +#ifdef GL_OES_texture_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14)) + { + ret = GLEW_OES_texture_buffer; + continue; + } +#endif +#ifdef GL_OES_texture_compression_astc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc", 24)) + { + ret = GLEW_OES_texture_compression_astc; + continue; + } +#endif +#ifdef GL_OES_texture_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) + { + ret = GLEW_OES_texture_cube_map; + continue; + } +#endif +#ifdef GL_OES_texture_cube_map_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) + { + ret = GLEW_OES_texture_cube_map_array; + continue; + } +#endif +#ifdef GL_OES_texture_env_crossbar + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_crossbar", 20)) + { + ret = GLEW_OES_texture_env_crossbar; + continue; + } +#endif +#ifdef GL_OES_texture_mirrored_repeat + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23)) + { + ret = GLEW_OES_texture_mirrored_repeat; + continue; + } +#endif +#ifdef GL_OES_texture_npot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot", 12)) + { + ret = GLEW_OES_texture_npot; + continue; + } +#endif +#ifdef GL_OES_texture_stencil8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stencil8", 16)) + { + ret = GLEW_OES_texture_stencil8; + continue; + } +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage_multisample_2d_array", 36)) + { + ret = GLEW_OES_texture_storage_multisample_2d_array; + continue; + } +#endif +#ifdef GL_OES_texture_view + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) + { + ret = GLEW_OES_texture_view; + continue; + } +#endif +#ifdef GL_OES_vertex_array_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) + { + ret = GLEW_OES_vertex_array_object; + continue; + } +#endif +#ifdef GL_OES_vertex_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_half_float", 17)) + { + ret = GLEW_OES_vertex_half_float; + continue; + } +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_10_10_10_2", 22)) + { + ret = GLEW_OES_vertex_type_10_10_10_2; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4)) @@ -17109,6 +28726,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_OVR_multiview2; continue; } +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_multisampled_render_to_texture", 40)) + { + ret = GLEW_OVR_multiview_multisampled_render_to_texture; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"PGI_", 4)) @@ -17126,6 +28750,107 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_PGI_vertex_hints; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"QCOM_", 5)) + { +#ifdef GL_QCOM_YUV_texture_gather + if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_texture_gather", 18)) + { + ret = GLEW_QCOM_YUV_texture_gather; + continue; + } +#endif +#ifdef GL_QCOM_alpha_test + if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_test", 10)) + { + ret = GLEW_QCOM_alpha_test; + continue; + } +#endif +#ifdef GL_QCOM_binning_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"binning_control", 15)) + { + ret = GLEW_QCOM_binning_control; + continue; + } +#endif +#ifdef GL_QCOM_driver_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"driver_control", 14)) + { + ret = GLEW_QCOM_driver_control; + continue; + } +#endif +#ifdef GL_QCOM_extended_get + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get", 12)) + { + ret = GLEW_QCOM_extended_get; + continue; + } +#endif +#ifdef GL_QCOM_extended_get2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get2", 13)) + { + ret = GLEW_QCOM_extended_get2; + continue; + } +#endif +#ifdef GL_QCOM_framebuffer_foveated + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_foveated", 20)) + { + ret = GLEW_QCOM_framebuffer_foveated; + continue; + } +#endif +#ifdef GL_QCOM_perfmon_global_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"perfmon_global_mode", 19)) + { + ret = GLEW_QCOM_perfmon_global_mode; + continue; + } +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_noncoherent", 36)) + { + ret = GLEW_QCOM_shader_framebuffer_fetch_noncoherent; + continue; + } +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_rate", 29)) + { + ret = GLEW_QCOM_shader_framebuffer_fetch_rate; + continue; + } +#endif +#ifdef GL_QCOM_texture_foveated + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated", 16)) + { + ret = GLEW_QCOM_texture_foveated; + continue; + } +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated_subsampled_layout", 34)) + { + ret = GLEW_QCOM_texture_foveated_subsampled_layout; + continue; + } +#endif +#ifdef GL_QCOM_tiled_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tiled_rendering", 15)) + { + ret = GLEW_QCOM_tiled_rendering; + continue; + } +#endif +#ifdef GL_QCOM_writeonly_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"writeonly_rendering", 19)) + { + ret = GLEW_QCOM_writeonly_rendering; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"REGAL_", 6)) @@ -17202,6 +28927,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5)) { +#ifdef GL_SGIS_clip_band_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_band_hint", 14)) + { + ret = GLEW_SGIS_clip_band_hint; + continue; + } +#endif #ifdef GL_SGIS_color_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11)) { @@ -17230,6 +28962,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_line_texgen + if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_texgen", 11)) + { + ret = GLEW_SGIS_line_texgen; + continue; + } +#endif #ifdef GL_SGIS_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { @@ -17237,6 +28976,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_multitexture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12)) + { + ret = GLEW_SGIS_multitexture; + continue; + } +#endif #ifdef GL_SGIS_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { @@ -17251,6 +28997,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_shared_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18)) + { + ret = GLEW_SGIS_shared_multisample; + continue; + } +#endif #ifdef GL_SGIS_sharpen_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sharpen_texture", 15)) { @@ -17324,6 +29077,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_bali_g_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_g_instruments", 18)) + { + ret = GLEW_SGIX_bali_g_instruments; + continue; + } +#endif +#ifdef GL_SGIX_bali_r_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_r_instruments", 18)) + { + ret = GLEW_SGIX_bali_r_instruments; + continue; + } +#endif +#ifdef GL_SGIX_bali_timer_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_timer_instruments", 22)) + { + ret = GLEW_SGIX_bali_timer_instruments; + continue; + } +#endif #ifdef GL_SGIX_blend_alpha_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_alpha_minmax", 18)) { @@ -17331,6 +29105,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_blend_cadd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cadd", 10)) + { + ret = GLEW_SGIX_blend_cadd; + continue; + } +#endif +#ifdef GL_SGIX_blend_cmultiply + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cmultiply", 15)) + { + ret = GLEW_SGIX_blend_cmultiply; + continue; + } +#endif +#ifdef GL_SGIX_calligraphic_fragment + if (_glewStrSame3(&pos, &len, (const GLubyte*)"calligraphic_fragment", 21)) + { + ret = GLEW_SGIX_calligraphic_fragment; + continue; + } +#endif #ifdef GL_SGIX_clipmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"clipmap", 7)) { @@ -17338,6 +29133,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_color_matrix_accuracy + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix_accuracy", 21)) + { + ret = GLEW_SGIX_color_matrix_accuracy; + continue; + } +#endif +#ifdef GL_SGIX_color_table_index_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table_index_mode", 22)) + { + ret = GLEW_SGIX_color_table_index_mode; + continue; + } +#endif +#ifdef GL_SGIX_complex_polar + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_polar", 13)) + { + ret = GLEW_SGIX_complex_polar; + continue; + } +#endif #ifdef GL_SGIX_convolution_accuracy if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_accuracy", 20)) { @@ -17345,6 +29161,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cube_map", 8)) + { + ret = GLEW_SGIX_cube_map; + continue; + } +#endif +#ifdef GL_SGIX_cylinder_texgen + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cylinder_texgen", 15)) + { + ret = GLEW_SGIX_cylinder_texgen; + continue; + } +#endif +#ifdef GL_SGIX_datapipe + if (_glewStrSame3(&pos, &len, (const GLubyte*)"datapipe", 8)) + { + ret = GLEW_SGIX_datapipe; + continue; + } +#endif +#ifdef GL_SGIX_decimation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"decimation", 10)) + { + ret = GLEW_SGIX_decimation; + continue; + } +#endif +#ifdef GL_SGIX_depth_pass_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_pass_instrument", 21)) + { + ret = GLEW_SGIX_depth_pass_instrument; + continue; + } +#endif #ifdef GL_SGIX_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) { @@ -17352,6 +29203,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_dvc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"dvc", 3)) + { + ret = GLEW_SGIX_dvc; + continue; + } +#endif #ifdef GL_SGIX_flush_raster if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_raster", 12)) { @@ -17359,6 +29217,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fog_blend + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_blend", 9)) + { + ret = GLEW_SGIX_fog_blend; + continue; + } +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_factor_to_alpha", 19)) + { + ret = GLEW_SGIX_fog_factor_to_alpha; + continue; + } +#endif +#ifdef GL_SGIX_fog_layers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_layers", 10)) + { + ret = GLEW_SGIX_fog_layers; + continue; + } +#endif #ifdef GL_SGIX_fog_offset if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_offset", 10)) { @@ -17366,6 +29245,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fog_patchy + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_patchy", 10)) + { + ret = GLEW_SGIX_fog_patchy; + continue; + } +#endif +#ifdef GL_SGIX_fog_scale + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_scale", 9)) + { + ret = GLEW_SGIX_fog_scale; + continue; + } +#endif #ifdef GL_SGIX_fog_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_texture", 11)) { @@ -17373,6 +29266,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fragment_lighting_space + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting_space", 23)) + { + ret = GLEW_SGIX_fragment_lighting_space; + continue; + } +#endif #ifdef GL_SGIX_fragment_specular_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_specular_lighting", 26)) { @@ -17380,6 +29280,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fragments_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragments_instrument", 20)) + { + ret = GLEW_SGIX_fragments_instrument; + continue; + } +#endif #ifdef GL_SGIX_framezoom if (_glewStrSame3(&pos, &len, (const GLubyte*)"framezoom", 9)) { @@ -17387,6 +29294,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_icc_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"icc_texture", 11)) + { + ret = GLEW_SGIX_icc_texture; + continue; + } +#endif +#ifdef GL_SGIX_igloo_interface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"igloo_interface", 15)) + { + ret = GLEW_SGIX_igloo_interface; + continue; + } +#endif +#ifdef GL_SGIX_image_compression + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_compression", 17)) + { + ret = GLEW_SGIX_image_compression; + continue; + } +#endif +#ifdef GL_SGIX_impact_pixel_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"impact_pixel_texture", 20)) + { + ret = GLEW_SGIX_impact_pixel_texture; + continue; + } +#endif +#ifdef GL_SGIX_instrument_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instrument_error", 16)) + { + ret = GLEW_SGIX_instrument_error; + continue; + } +#endif #ifdef GL_SGIX_interlace if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9)) { @@ -17401,6 +29343,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_line_quality_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_quality_hint", 17)) + { + ret = GLEW_SGIX_line_quality_hint; + continue; + } +#endif #ifdef GL_SGIX_list_priority if (_glewStrSame3(&pos, &len, (const GLubyte*)"list_priority", 13)) { @@ -17408,6 +29357,48 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_mpeg1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg1", 5)) + { + ret = GLEW_SGIX_mpeg1; + continue; + } +#endif +#ifdef GL_SGIX_mpeg2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg2", 5)) + { + ret = GLEW_SGIX_mpeg2; + continue; + } +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"nonlinear_lighting_pervertex", 28)) + { + ret = GLEW_SGIX_nonlinear_lighting_pervertex; + continue; + } +#endif +#ifdef GL_SGIX_nurbs_eval + if (_glewStrSame3(&pos, &len, (const GLubyte*)"nurbs_eval", 10)) + { + ret = GLEW_SGIX_nurbs_eval; + continue; + } +#endif +#ifdef GL_SGIX_occlusion_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_instrument", 20)) + { + ret = GLEW_SGIX_occlusion_instrument; + continue; + } +#endif +#ifdef GL_SGIX_packed_6bytes + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_6bytes", 13)) + { + ret = GLEW_SGIX_packed_6bytes; + continue; + } +#endif #ifdef GL_SGIX_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { @@ -17422,6 +29413,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_pixel_texture_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_lod", 17)) + { + ret = GLEW_SGIX_pixel_texture_lod; + continue; + } +#endif +#ifdef GL_SGIX_pixel_tiles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_tiles", 11)) + { + ret = GLEW_SGIX_pixel_tiles; + continue; + } +#endif +#ifdef GL_SGIX_polynomial_ffd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polynomial_ffd", 14)) + { + ret = GLEW_SGIX_polynomial_ffd; + continue; + } +#endif +#ifdef GL_SGIX_quad_mesh + if (_glewStrSame3(&pos, &len, (const GLubyte*)"quad_mesh", 9)) + { + ret = GLEW_SGIX_quad_mesh; + continue; + } +#endif #ifdef GL_SGIX_reference_plane if (_glewStrSame3(&pos, &len, (const GLubyte*)"reference_plane", 15)) { @@ -17436,6 +29455,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_scalebias_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scalebias_hint", 14)) + { + ret = GLEW_SGIX_scalebias_hint; + continue; + } +#endif #ifdef GL_SGIX_shadow if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6)) { @@ -17450,6 +29476,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_slim + if (_glewStrSame3(&pos, &len, (const GLubyte*)"slim", 4)) + { + ret = GLEW_SGIX_slim; + continue; + } +#endif +#ifdef GL_SGIX_spotlight_cutoff + if (_glewStrSame3(&pos, &len, (const GLubyte*)"spotlight_cutoff", 16)) + { + ret = GLEW_SGIX_spotlight_cutoff; + continue; + } +#endif #ifdef GL_SGIX_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"sprite", 6)) { @@ -17457,6 +29497,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_subdiv_patch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"subdiv_patch", 12)) + { + ret = GLEW_SGIX_subdiv_patch; + continue; + } +#endif +#ifdef GL_SGIX_subsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9)) + { + ret = GLEW_SGIX_subsample; + continue; + } +#endif #ifdef GL_SGIX_tag_sample_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"tag_sample_buffer", 17)) { @@ -17485,6 +29539,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mipmap_anisotropic", 26)) + { + ret = GLEW_SGIX_texture_mipmap_anisotropic; + continue; + } +#endif #ifdef GL_SGIX_texture_multi_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multi_buffer", 20)) { @@ -17492,6 +29553,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_phase + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_phase", 13)) + { + ret = GLEW_SGIX_texture_phase; + continue; + } +#endif #ifdef GL_SGIX_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { @@ -17506,6 +29574,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_supersample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_supersample", 19)) + { + ret = GLEW_SGIX_texture_supersample; + continue; + } +#endif +#ifdef GL_SGIX_vector_ops + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vector_ops", 10)) + { + ret = GLEW_SGIX_vector_ops; + continue; + } +#endif +#ifdef GL_SGIX_vertex_array_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) + { + ret = GLEW_SGIX_vertex_array_object; + continue; + } +#endif #ifdef GL_SGIX_vertex_preclip if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip", 14)) { @@ -17526,6 +29615,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_SGIX_ycrcb; continue; } +#endif +#ifdef GL_SGIX_ycrcb_subsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb_subsample", 15)) + { + ret = GLEW_SGIX_ycrcb_subsample; + continue; + } +#endif +#ifdef GL_SGIX_ycrcba + if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcba", 6)) + { + ret = GLEW_SGIX_ycrcba; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4)) @@ -17544,6 +29647,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGI_complex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex", 7)) + { + ret = GLEW_SGI_complex; + continue; + } +#endif +#ifdef GL_SGI_complex_type + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_type", 12)) + { + ret = GLEW_SGI_complex_type; + continue; + } +#endif +#ifdef GL_SGI_fft + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fft", 3)) + { + ret = GLEW_SGI_fft; + continue; + } +#endif #ifdef GL_SGI_texture_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_color_table", 19)) { @@ -17612,6 +29736,16 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_SUN_vertex; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"VIV_", 4)) + { +#ifdef GL_VIV_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_VIV_shader_binary; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"WIN_", 4)) @@ -17623,6 +29757,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_WIN_scene_markerXXX + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_markerXXX", 15)) + { + ret = GLEW_WIN_scene_markerXXX; + continue; + } +#endif #ifdef GL_WIN_specular_fog if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_fog", 12)) { @@ -17644,13 +29785,9 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) return ret; } -#if defined(_WIN32) +#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA) -#if defined(GLEW_MX) -GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name) -#else GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) -#endif { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -17712,6 +29849,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) continue; } #endif +#ifdef WGL_ARB_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = WGLEW_ARB_create_context_no_error; + continue; + } +#endif #ifdef WGL_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { @@ -17816,6 +29960,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { +#ifdef WGL_EXT_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorspace", 10)) + { + ret = WGLEW_EXT_colorspace; + continue; + } +#endif #ifdef WGL_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { @@ -17997,6 +30148,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) continue; } #endif +#ifdef WGL_NV_multigpu_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16)) + { + ret = WGLEW_NV_multigpu_context; + continue; + } +#endif #ifdef WGL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -18070,13 +30228,9 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) return ret; } -#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) +#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) -#if defined(GLEW_MX) -GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name) -#else GLboolean glxewIsSupported (const char* name) -#endif { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -18145,6 +30299,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_ARB_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = GLXEW_ARB_create_context_no_error; + continue; + } +#endif #ifdef GLX_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { @@ -18235,6 +30396,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_EXT_context_priority + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16)) + { + ret = GLXEW_EXT_context_priority; + continue; + } +#endif #ifdef GLX_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { @@ -18270,6 +30438,20 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_EXT_libglvnd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"libglvnd", 8)) + { + ret = GLXEW_EXT_libglvnd; + continue; + } +#endif +#ifdef GLX_EXT_no_config_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17)) + { + ret = GLXEW_EXT_no_config_context; + continue; + } +#endif #ifdef GLX_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { @@ -18412,6 +30594,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_NV_multigpu_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16)) + { + ret = GLXEW_NV_multigpu_context; + continue; + } +#endif #ifdef GLX_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -18426,6 +30615,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = GLXEW_NV_robustness_video_memory_purge; + continue; + } +#endif #ifdef GLX_NV_swap_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10)) { @@ -18609,6 +30805,1145 @@ GLboolean glxewIsSupported (const char* name) return ret; } -#endif /* _WIN32 */ +#elif defined(GLEW_EGL) -#endif /* SLIC3R_GUI */ +GLboolean eglewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4)) + { + if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8)) + { +#ifdef EGL_VERSION_1_0 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_0", 3)) + { + ret = EGLEW_VERSION_1_0; + continue; + } +#endif +#ifdef EGL_VERSION_1_1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_1", 3)) + { + ret = EGLEW_VERSION_1_1; + continue; + } +#endif +#ifdef EGL_VERSION_1_2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3)) + { + ret = EGLEW_VERSION_1_2; + continue; + } +#endif +#ifdef EGL_VERSION_1_3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3)) + { + ret = EGLEW_VERSION_1_3; + continue; + } +#endif +#ifdef EGL_VERSION_1_4 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3)) + { + ret = EGLEW_VERSION_1_4; + continue; + } +#endif +#ifdef EGL_VERSION_1_5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3)) + { + ret = EGLEW_VERSION_1_5; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) + { +#ifdef EGL_ANDROID_GLES_layers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"GLES_layers", 11)) + { + ret = EGLEW_ANDROID_GLES_layers; + continue; + } +#endif +#ifdef EGL_ANDROID_blob_cache + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blob_cache", 10)) + { + ret = EGLEW_ANDROID_blob_cache; + continue; + } +#endif +#ifdef EGL_ANDROID_create_native_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_native_client_buffer", 27)) + { + ret = EGLEW_ANDROID_create_native_client_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_framebuffer_target + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_target", 18)) + { + ret = EGLEW_ANDROID_framebuffer_target; + continue; + } +#endif +#ifdef EGL_ANDROID_front_buffer_auto_refresh + if (_glewStrSame3(&pos, &len, (const GLubyte*)"front_buffer_auto_refresh", 25)) + { + ret = EGLEW_ANDROID_front_buffer_auto_refresh; + continue; + } +#endif +#ifdef EGL_ANDROID_get_frame_timestamps + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_frame_timestamps", 20)) + { + ret = EGLEW_ANDROID_get_frame_timestamps; + continue; + } +#endif +#ifdef EGL_ANDROID_get_native_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_native_client_buffer", 24)) + { + ret = EGLEW_ANDROID_get_native_client_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_image_native_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) + { + ret = EGLEW_ANDROID_image_native_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_native_fence_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_fence_sync", 17)) + { + ret = EGLEW_ANDROID_native_fence_sync; + continue; + } +#endif +#ifdef EGL_ANDROID_presentation_time + if (_glewStrSame3(&pos, &len, (const GLubyte*)"presentation_time", 17)) + { + ret = EGLEW_ANDROID_presentation_time; + continue; + } +#endif +#ifdef EGL_ANDROID_recordable + if (_glewStrSame3(&pos, &len, (const GLubyte*)"recordable", 10)) + { + ret = EGLEW_ANDROID_recordable; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) + { +#ifdef EGL_ANGLE_d3d_share_handle_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"d3d_share_handle_client_buffer", 30)) + { + ret = EGLEW_ANGLE_d3d_share_handle_client_buffer; + continue; + } +#endif +#ifdef EGL_ANGLE_device_d3d + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_d3d", 10)) + { + ret = EGLEW_ANGLE_device_d3d; + continue; + } +#endif +#ifdef EGL_ANGLE_query_surface_pointer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_surface_pointer", 21)) + { + ret = EGLEW_ANGLE_query_surface_pointer; + continue; + } +#endif +#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_d3d_texture_2d_share_handle", 35)) + { + ret = EGLEW_ANGLE_surface_d3d_texture_2d_share_handle; + continue; + } +#endif +#ifdef EGL_ANGLE_window_fixed_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_fixed_size", 17)) + { + ret = EGLEW_ANGLE_window_fixed_size; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) + { +#ifdef EGL_ARM_image_format + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_format", 12)) + { + ret = EGLEW_ARM_image_format; + continue; + } +#endif +#ifdef EGL_ARM_implicit_external_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"implicit_external_sync", 22)) + { + ret = EGLEW_ARM_implicit_external_sync; + continue; + } +#endif +#ifdef EGL_ARM_pixmap_multisample_discard + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_multisample_discard", 26)) + { + ret = EGLEW_ARM_pixmap_multisample_discard; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) + { +#ifdef EGL_EXT_bind_to_front + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_to_front", 13)) + { + ret = EGLEW_EXT_bind_to_front; + continue; + } +#endif +#ifdef EGL_EXT_buffer_age + if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10)) + { + ret = EGLEW_EXT_buffer_age; + continue; + } +#endif +#ifdef EGL_EXT_client_extensions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_extensions", 17)) + { + ret = EGLEW_EXT_client_extensions; + continue; + } +#endif +#ifdef EGL_EXT_client_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_sync", 11)) + { + ret = EGLEW_EXT_client_sync; + continue; + } +#endif +#ifdef EGL_EXT_compositor + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compositor", 10)) + { + ret = EGLEW_EXT_compositor; + continue; + } +#endif +#ifdef EGL_EXT_create_context_robustness + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25)) + { + ret = EGLEW_EXT_create_context_robustness; + continue; + } +#endif +#ifdef EGL_EXT_device_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_base", 11)) + { + ret = EGLEW_EXT_device_base; + continue; + } +#endif +#ifdef EGL_EXT_device_drm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_drm", 10)) + { + ret = EGLEW_EXT_device_drm; + continue; + } +#endif +#ifdef EGL_EXT_device_enumeration + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_enumeration", 18)) + { + ret = EGLEW_EXT_device_enumeration; + continue; + } +#endif +#ifdef EGL_EXT_device_openwf + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_openwf", 13)) + { + ret = EGLEW_EXT_device_openwf; + continue; + } +#endif +#ifdef EGL_EXT_device_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_query", 12)) + { + ret = EGLEW_EXT_device_query; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_bt2020_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_linear", 27)) + { + ret = EGLEW_EXT_gl_colorspace_bt2020_linear; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_bt2020_pq + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_pq", 23)) + { + ret = EGLEW_EXT_gl_colorspace_bt2020_pq; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3", 24)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_linear", 31)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3_linear; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_passthrough", 36)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3_passthrough; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_scrgb + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb", 19)) + { + ret = EGLEW_EXT_gl_colorspace_scrgb; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_scrgb_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb_linear", 26)) + { + ret = EGLEW_EXT_gl_colorspace_scrgb_linear; + continue; + } +#endif +#ifdef EGL_EXT_image_dma_buf_import + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import", 20)) + { + ret = EGLEW_EXT_image_dma_buf_import; + continue; + } +#endif +#ifdef EGL_EXT_image_dma_buf_import_modifiers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import_modifiers", 30)) + { + ret = EGLEW_EXT_image_dma_buf_import_modifiers; + continue; + } +#endif +#ifdef EGL_EXT_image_gl_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_gl_colorspace", 19)) + { + ret = EGLEW_EXT_image_gl_colorspace; + continue; + } +#endif +#ifdef EGL_EXT_image_implicit_sync_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_implicit_sync_control", 27)) + { + ret = EGLEW_EXT_image_implicit_sync_control; + continue; + } +#endif +#ifdef EGL_EXT_multiview_window + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_window", 16)) + { + ret = EGLEW_EXT_multiview_window; + continue; + } +#endif +#ifdef EGL_EXT_output_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_base", 11)) + { + ret = EGLEW_EXT_output_base; + continue; + } +#endif +#ifdef EGL_EXT_output_drm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_drm", 10)) + { + ret = EGLEW_EXT_output_drm; + continue; + } +#endif +#ifdef EGL_EXT_output_openwf + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_openwf", 13)) + { + ret = EGLEW_EXT_output_openwf; + continue; + } +#endif +#ifdef EGL_EXT_pixel_format_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) + { + ret = EGLEW_EXT_pixel_format_float; + continue; + } +#endif +#ifdef EGL_EXT_platform_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_base", 13)) + { + ret = EGLEW_EXT_platform_base; + continue; + } +#endif +#ifdef EGL_EXT_platform_device + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_device", 15)) + { + ret = EGLEW_EXT_platform_device; + continue; + } +#endif +#ifdef EGL_EXT_platform_wayland + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) + { + ret = EGLEW_EXT_platform_wayland; + continue; + } +#endif +#ifdef EGL_EXT_platform_x11 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) + { + ret = EGLEW_EXT_platform_x11; + continue; + } +#endif +#ifdef EGL_EXT_protected_content + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_content", 17)) + { + ret = EGLEW_EXT_protected_content; + continue; + } +#endif +#ifdef EGL_EXT_protected_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_surface", 17)) + { + ret = EGLEW_EXT_protected_surface; + continue; + } +#endif +#ifdef EGL_EXT_stream_consumer_egloutput + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_egloutput", 25)) + { + ret = EGLEW_EXT_stream_consumer_egloutput; + continue; + } +#endif +#ifdef EGL_EXT_surface_CTA861_3_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_CTA861_3_metadata", 25)) + { + ret = EGLEW_EXT_surface_CTA861_3_metadata; + continue; + } +#endif +#ifdef EGL_EXT_surface_SMPTE2086_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_SMPTE2086_metadata", 26)) + { + ret = EGLEW_EXT_surface_SMPTE2086_metadata; + continue; + } +#endif +#ifdef EGL_EXT_swap_buffers_with_damage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) + { + ret = EGLEW_EXT_swap_buffers_with_damage; + continue; + } +#endif +#ifdef EGL_EXT_sync_reuse + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_reuse", 10)) + { + ret = EGLEW_EXT_sync_reuse; + continue; + } +#endif +#ifdef EGL_EXT_yuv_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"yuv_surface", 11)) + { + ret = EGLEW_EXT_yuv_surface; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"HI_", 3)) + { +#ifdef EGL_HI_clientpixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clientpixmap", 12)) + { + ret = EGLEW_HI_clientpixmap; + continue; + } +#endif +#ifdef EGL_HI_colorformats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorformats", 12)) + { + ret = EGLEW_HI_colorformats; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4)) + { +#ifdef EGL_IMG_context_priority + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16)) + { + ret = EGLEW_IMG_context_priority; + continue; + } +#endif +#ifdef EGL_IMG_image_plane_attribs + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_plane_attribs", 19)) + { + ret = EGLEW_IMG_image_plane_attribs; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4)) + { +#ifdef EGL_KHR_cl_event + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8)) + { + ret = EGLEW_KHR_cl_event; + continue; + } +#endif +#ifdef EGL_KHR_cl_event2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event2", 9)) + { + ret = EGLEW_KHR_cl_event2; + continue; + } +#endif +#ifdef EGL_KHR_client_get_all_proc_addresses + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_get_all_proc_addresses", 29)) + { + ret = EGLEW_KHR_client_get_all_proc_addresses; + continue; + } +#endif +#ifdef EGL_KHR_config_attribs + if (_glewStrSame3(&pos, &len, (const GLubyte*)"config_attribs", 14)) + { + ret = EGLEW_KHR_config_attribs; + continue; + } +#endif +#ifdef EGL_KHR_context_flush_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) + { + ret = EGLEW_KHR_context_flush_control; + continue; + } +#endif +#ifdef EGL_KHR_create_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14)) + { + ret = EGLEW_KHR_create_context; + continue; + } +#endif +#ifdef EGL_KHR_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = EGLEW_KHR_create_context_no_error; + continue; + } +#endif +#ifdef EGL_KHR_debug + if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5)) + { + ret = EGLEW_KHR_debug; + continue; + } +#endif +#ifdef EGL_KHR_display_reference + if (_glewStrSame3(&pos, &len, (const GLubyte*)"display_reference", 17)) + { + ret = EGLEW_KHR_display_reference; + continue; + } +#endif +#ifdef EGL_KHR_fence_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence_sync", 10)) + { + ret = EGLEW_KHR_fence_sync; + continue; + } +#endif +#ifdef EGL_KHR_get_all_proc_addresses + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_all_proc_addresses", 22)) + { + ret = EGLEW_KHR_get_all_proc_addresses; + continue; + } +#endif +#ifdef EGL_KHR_gl_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace", 13)) + { + ret = EGLEW_KHR_gl_colorspace; + continue; + } +#endif +#ifdef EGL_KHR_gl_renderbuffer_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_renderbuffer_image", 21)) + { + ret = EGLEW_KHR_gl_renderbuffer_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_2D_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_2D_image", 19)) + { + ret = EGLEW_KHR_gl_texture_2D_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_3D_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_3D_image", 19)) + { + ret = EGLEW_KHR_gl_texture_3D_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_cubemap_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_cubemap_image", 24)) + { + ret = EGLEW_KHR_gl_texture_cubemap_image; + continue; + } +#endif +#ifdef EGL_KHR_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image", 5)) + { + ret = EGLEW_KHR_image; + continue; + } +#endif +#ifdef EGL_KHR_image_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_base", 10)) + { + ret = EGLEW_KHR_image_base; + continue; + } +#endif +#ifdef EGL_KHR_image_pixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_pixmap", 12)) + { + ret = EGLEW_KHR_image_pixmap; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface", 12)) + { + ret = EGLEW_KHR_lock_surface; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface2", 13)) + { + ret = EGLEW_KHR_lock_surface2; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface3", 13)) + { + ret = EGLEW_KHR_lock_surface3; + continue; + } +#endif +#ifdef EGL_KHR_mutable_render_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mutable_render_buffer", 21)) + { + ret = EGLEW_KHR_mutable_render_buffer; + continue; + } +#endif +#ifdef EGL_KHR_no_config_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17)) + { + ret = EGLEW_KHR_no_config_context; + continue; + } +#endif +#ifdef EGL_KHR_partial_update + if (_glewStrSame3(&pos, &len, (const GLubyte*)"partial_update", 14)) + { + ret = EGLEW_KHR_partial_update; + continue; + } +#endif +#ifdef EGL_KHR_platform_android + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_android", 16)) + { + ret = EGLEW_KHR_platform_android; + continue; + } +#endif +#ifdef EGL_KHR_platform_gbm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) + { + ret = EGLEW_KHR_platform_gbm; + continue; + } +#endif +#ifdef EGL_KHR_platform_wayland + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) + { + ret = EGLEW_KHR_platform_wayland; + continue; + } +#endif +#ifdef EGL_KHR_platform_x11 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) + { + ret = EGLEW_KHR_platform_x11; + continue; + } +#endif +#ifdef EGL_KHR_reusable_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"reusable_sync", 13)) + { + ret = EGLEW_KHR_reusable_sync; + continue; + } +#endif +#ifdef EGL_KHR_stream + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream", 6)) + { + ret = EGLEW_KHR_stream; + continue; + } +#endif +#ifdef EGL_KHR_stream_attrib + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_attrib", 13)) + { + ret = EGLEW_KHR_stream_attrib; + continue; + } +#endif +#ifdef EGL_KHR_stream_consumer_gltexture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture", 25)) + { + ret = EGLEW_KHR_stream_consumer_gltexture; + continue; + } +#endif +#ifdef EGL_KHR_stream_cross_process_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process_fd", 23)) + { + ret = EGLEW_KHR_stream_cross_process_fd; + continue; + } +#endif +#ifdef EGL_KHR_stream_fifo + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo", 11)) + { + ret = EGLEW_KHR_stream_fifo; + continue; + } +#endif +#ifdef EGL_KHR_stream_producer_aldatalocator + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_aldatalocator", 29)) + { + ret = EGLEW_KHR_stream_producer_aldatalocator; + continue; + } +#endif +#ifdef EGL_KHR_stream_producer_eglsurface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_eglsurface", 26)) + { + ret = EGLEW_KHR_stream_producer_eglsurface; + continue; + } +#endif +#ifdef EGL_KHR_surfaceless_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19)) + { + ret = EGLEW_KHR_surfaceless_context; + continue; + } +#endif +#ifdef EGL_KHR_swap_buffers_with_damage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) + { + ret = EGLEW_KHR_swap_buffers_with_damage; + continue; + } +#endif +#ifdef EGL_KHR_vg_parent_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vg_parent_image", 15)) + { + ret = EGLEW_KHR_vg_parent_image; + continue; + } +#endif +#ifdef EGL_KHR_wait_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"wait_sync", 9)) + { + ret = EGLEW_KHR_wait_sync; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) + { +#ifdef EGL_MESA_drm_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"drm_image", 9)) + { + ret = EGLEW_MESA_drm_image; + continue; + } +#endif +#ifdef EGL_MESA_image_dma_buf_export + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_export", 20)) + { + ret = EGLEW_MESA_image_dma_buf_export; + continue; + } +#endif +#ifdef EGL_MESA_platform_gbm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) + { + ret = EGLEW_MESA_platform_gbm; + continue; + } +#endif +#ifdef EGL_MESA_platform_surfaceless + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_surfaceless", 20)) + { + ret = EGLEW_MESA_platform_surfaceless; + continue; + } +#endif +#ifdef EGL_MESA_query_driver + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_driver", 12)) + { + ret = EGLEW_MESA_query_driver; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"NOK_", 4)) + { +#ifdef EGL_NOK_swap_region + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region", 11)) + { + ret = EGLEW_NOK_swap_region; + continue; + } +#endif +#ifdef EGL_NOK_swap_region2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region2", 12)) + { + ret = EGLEW_NOK_swap_region2; + continue; + } +#endif +#ifdef EGL_NOK_texture_from_pixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19)) + { + ret = EGLEW_NOK_texture_from_pixmap; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) + { +#ifdef EGL_NV_3dvision_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_surface", 16)) + { + ret = EGLEW_NV_3dvision_surface; + continue; + } +#endif +#ifdef EGL_NV_context_priority_realtime + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority_realtime", 25)) + { + ret = EGLEW_NV_context_priority_realtime; + continue; + } +#endif +#ifdef EGL_NV_coverage_sample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample", 15)) + { + ret = EGLEW_NV_coverage_sample; + continue; + } +#endif +#ifdef EGL_NV_coverage_sample_resolve + if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample_resolve", 23)) + { + ret = EGLEW_NV_coverage_sample_resolve; + continue; + } +#endif +#ifdef EGL_NV_cuda_event + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cuda_event", 10)) + { + ret = EGLEW_NV_cuda_event; + continue; + } +#endif +#ifdef EGL_NV_depth_nonlinear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15)) + { + ret = EGLEW_NV_depth_nonlinear; + continue; + } +#endif +#ifdef EGL_NV_device_cuda + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_cuda", 11)) + { + ret = EGLEW_NV_device_cuda; + continue; + } +#endif +#ifdef EGL_NV_native_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_query", 12)) + { + ret = EGLEW_NV_native_query; + continue; + } +#endif +#ifdef EGL_NV_post_convert_rounding + if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_convert_rounding", 21)) + { + ret = EGLEW_NV_post_convert_rounding; + continue; + } +#endif +#ifdef EGL_NV_post_sub_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_sub_buffer", 15)) + { + ret = EGLEW_NV_post_sub_buffer; + continue; + } +#endif +#ifdef EGL_NV_quadruple_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"quadruple_buffer", 16)) + { + ret = EGLEW_NV_quadruple_buffer; + continue; + } +#endif +#ifdef EGL_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = EGLEW_NV_robustness_video_memory_purge; + continue; + } +#endif +#ifdef EGL_NV_stream_consumer_gltexture_yuv + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture_yuv", 29)) + { + ret = EGLEW_NV_stream_consumer_gltexture_yuv; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_display + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_display", 20)) + { + ret = EGLEW_NV_stream_cross_display; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_object", 19)) + { + ret = EGLEW_NV_stream_cross_object; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_partition + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_partition", 22)) + { + ret = EGLEW_NV_stream_cross_partition; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_process + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process", 20)) + { + ret = EGLEW_NV_stream_cross_process; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_system + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_system", 19)) + { + ret = EGLEW_NV_stream_cross_system; + continue; + } +#endif +#ifdef EGL_NV_stream_dma + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_dma", 10)) + { + ret = EGLEW_NV_stream_dma; + continue; + } +#endif +#ifdef EGL_NV_stream_fifo_next + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_next", 16)) + { + ret = EGLEW_NV_stream_fifo_next; + continue; + } +#endif +#ifdef EGL_NV_stream_fifo_synchronous + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_synchronous", 23)) + { + ret = EGLEW_NV_stream_fifo_synchronous; + continue; + } +#endif +#ifdef EGL_NV_stream_flush + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_flush", 12)) + { + ret = EGLEW_NV_stream_flush; + continue; + } +#endif +#ifdef EGL_NV_stream_frame_limits + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_frame_limits", 19)) + { + ret = EGLEW_NV_stream_frame_limits; + continue; + } +#endif +#ifdef EGL_NV_stream_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_metadata", 15)) + { + ret = EGLEW_NV_stream_metadata; + continue; + } +#endif +#ifdef EGL_NV_stream_origin + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_origin", 13)) + { + ret = EGLEW_NV_stream_origin; + continue; + } +#endif +#ifdef EGL_NV_stream_remote + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_remote", 13)) + { + ret = EGLEW_NV_stream_remote; + continue; + } +#endif +#ifdef EGL_NV_stream_reset + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_reset", 12)) + { + ret = EGLEW_NV_stream_reset; + continue; + } +#endif +#ifdef EGL_NV_stream_socket + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket", 13)) + { + ret = EGLEW_NV_stream_socket; + continue; + } +#endif +#ifdef EGL_NV_stream_socket_inet + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_inet", 18)) + { + ret = EGLEW_NV_stream_socket_inet; + continue; + } +#endif +#ifdef EGL_NV_stream_socket_unix + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_unix", 18)) + { + ret = EGLEW_NV_stream_socket_unix; + continue; + } +#endif +#ifdef EGL_NV_stream_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_sync", 11)) + { + ret = EGLEW_NV_stream_sync; + continue; + } +#endif +#ifdef EGL_NV_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) + { + ret = EGLEW_NV_sync; + continue; + } +#endif +#ifdef EGL_NV_system_time + if (_glewStrSame3(&pos, &len, (const GLubyte*)"system_time", 11)) + { + ret = EGLEW_NV_system_time; + continue; + } +#endif +#ifdef EGL_NV_triple_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"triple_buffer", 13)) + { + ret = EGLEW_NV_triple_buffer; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"TIZEN_", 6)) + { +#ifdef EGL_TIZEN_image_native_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) + { + ret = EGLEW_TIZEN_image_native_buffer; + continue; + } +#endif +#ifdef EGL_TIZEN_image_native_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_surface", 20)) + { + ret = EGLEW_TIZEN_image_native_surface; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"WL_", 3)) + { +#ifdef EGL_WL_bind_wayland_display + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_wayland_display", 20)) + { + ret = EGLEW_WL_bind_wayland_display; + continue; + } +#endif +#ifdef EGL_WL_create_wayland_buffer_from_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_wayland_buffer_from_image", 32)) + { + ret = EGLEW_WL_create_wayland_buffer_from_image; + continue; + } +#endif + } + } + ret = (len == 0); + } + return ret; +} + +#endif /* _WIN32 */ From 28de7f5504181b6898c403264fda175a9b90ff24 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 26 Oct 2021 12:09:46 +0200 Subject: [PATCH 012/130] Support generator: Merging of bottom contacts with top contacts and interface layers if possible. This should always be possible with soluble supports and it should have been done long time ago. For non-soluble supports, it may or may not be possible to merge these layers: They will only be merged if they are extruded without bridging and with the same layer height. Fixes Support enforcer interfaces not generated as needed. #6784 or at least some of the issues reported. Experimental: Added experimental filtering of propagated support columns to two extrusions, overlapping by maximum 20%. This filtering step will remove spurious columns that do not support anything, but the filtering step may remove supports supporting tiny islands. Those supports would likely not be printable anyways without the user intervention (extending the supported area by painting). --- src/libslic3r/SupportMaterial.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index a668a385b4..9e1eb3e75e 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -945,6 +945,8 @@ public: { { union_ex(*m_support_polygons) }, { "src", "green", 0.5f } }, }); #endif /* SLIC3R_DEBUG */ + //FIXME do we want to trim with the object here? On one side the columns will be thinner, on the other side support interfaces may disappear for snug supports. + // return diff(smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance), *m_trimming_polygons); return smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance); } assert(false); @@ -2346,7 +2348,9 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta Polygons &layer_support_area = layer_support_areas[layer_id]; Polygons *layer_buildplate_covered = buildplate_covered.empty() ? nullptr : &buildplate_covered[layer_id]; - task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered + // Filtering the propagated support columns to two extrusions, overlapping by maximum 20%. + float column_propagation_filtering_radius = scaled(0.8 * 0.5 * (m_support_params.support_material_flow.spacing() + m_support_params.support_material_flow.width())); + task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered, column_propagation_filtering_radius #ifdef SLIC3R_DEBUG , iRun, layer_id #endif /* SLIC3R_DEBUG */ @@ -2357,6 +2361,8 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta , iRun, layer_id, "general" #endif /* SLIC3R_DEBUG */ ); + // When propagating support areas downwards, stop propagating the support column if it becomes too thin to be printable. + //overhangs_projection = opening(overhangs_projection, column_propagation_filtering_radius); }); Polygons layer_support_area_enforcers; @@ -4115,7 +4121,10 @@ void PrintObjectSupportMaterial::generate_toolpaths( base_layer.merge(std::move(bottom_contact_layer)); else if (base_layer.empty() && ! bottom_contact_layer.empty() && ! bottom_contact_layer.layer->bridging) base_layer = std::move(bottom_contact_layer); - } + } else if (bottom_contact_layer.could_merge(top_contact_layer)) + top_contact_layer.merge(std::move(bottom_contact_layer)); + else if (bottom_contact_layer.could_merge(interface_layer)) + bottom_contact_layer.merge(std::move(interface_layer)); #if 0 if ( ! interface_layer.empty() && ! base_layer.empty()) { From fe748ca43bdf40f0852d7f659bd024f30853579f Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Tue, 26 Oct 2021 13:38:49 +0200 Subject: [PATCH 013/130] 1.4.0-beta1 Sync with PrusaSlicer-settings --- resources/profiles/PrusaResearch.idx | 3 +++ resources/profiles/PrusaResearch.ini | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index cef8c654d2..f73bedebfc 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.4.0-beta0 +1.4.0-beta1 Updated pad wall slope angle for SLA printers. Updated Filatech Filacarbon profile for Prusa MINI. 1.4.0-beta0 Added multiple Filatech and BASF filament profiles. Added material profiles for SL1S. min_slic3r_version = 2.4.0-alpha0 1.4.0-alpha8 Added material profiles for Prusament Resin. Detect bridging perimeters enabled by default. @@ -14,10 +15,12 @@ min_slic3r_version = 2.4.0-alpha0 1.3.0-alpha1 Added Prusament PCCF. Increased travel acceleration for Prusa MINI. Updated start g-code for Prusa MINI. Added multiple add:north and Extrudr filament profiles. Updated Z travel speed values. 1.3.0-alpha0 Disabled thick bridges, updated support settings. min_slic3r_version = 2.3.2-alpha0 +1.3.3 Added multiple profiles for Filatech filaments. Added material profiles for SL1S SPEED. Updated SLA print settings. 1.3.2 Added material profiles for Prusament Resin. 1.3.1 Added multiple add:north and Extrudr filament profiles. Updated support head settings (SL1S). 1.3.0 Added SL1S SPEED profiles. min_slic3r_version = 2.3.0-rc1 +1.2.10 Added multiple profiles for Filatech filaments. Updated SLA print settings (pad wall slope angle). 1.2.9 Added material profiles for Prusament Resin. 1.2.8 Added multiple add:north and Extrudr filament profiles. 1.2.7 Updated "Prusament PC Blend Carbon Fiber" profile for Prusa MINI. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index e243963cef..25ce1c2701 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.4.0-beta0 +config_version = 1.4.0-beta1 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2775,6 +2775,7 @@ compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI [filament:Filatech FilaCarbon @MINI] inherits = Filatech FilaCarbon; *ABSMINI* +first_layer_bed_temperature = 100 compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MINI" [filament:Filatech FilaPLA] @@ -4475,7 +4476,7 @@ pad_enable = 1 pad_max_merge_distance = 50 pad_wall_height = 0 pad_wall_thickness = 1 -pad_wall_slope = 90 +pad_wall_slope = 45 slice_closing_radius = 0.005 support_base_diameter = 3 support_base_height = 1 From ef0dae8c97839686e41753cb03232b5a04d6e954 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 26 Oct 2021 14:52:20 +0200 Subject: [PATCH 014/130] Implemented possibility to apply conversion from inches/meters to mm for all loaded objects at once + Added MessageWithCheckBox dialog + some code refactoring for MessageDlg --- src/slic3r/GUI/MsgDialog.cpp | 83 +++++++++++++++++++++++------------- src/slic3r/GUI/MsgDialog.hpp | 19 +++++++++ src/slic3r/GUI/Plater.cpp | 61 ++++++++++++++++++-------- 3 files changed, 115 insertions(+), 48 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 9f3f34f844..c4cdde3d90 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -75,6 +76,26 @@ void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) btn->Bind(wxEVT_BUTTON, [this, btn_id](wxCommandEvent&) { this->EndModal(btn_id); }); }; +void MsgDialog::apply_style(long style) +{ + if (style & wxOK) add_btn(wxID_OK, true); + if (style & wxYES) add_btn(wxID_YES); + if (style & wxNO) add_btn(wxID_NO); + if (style & wxCANCEL) add_btn(wxID_CANCEL); + + logo->SetBitmap(create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : + style & wxICON_INFORMATION ? "info" : + style & wxICON_QUESTION ? "question" : "PrusaSlicer"/*"_192px_grayscale.png"*/, this, 84)); +} + +void MsgDialog::finalize() +{ + wxGetApp().UpdateDlgDarkUI(this); + Fit(); + this->CenterOnParent(); +} + + // Text shown as HTML, so that mouse selection and Ctrl-V to copy will work. static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxString msg, bool monospaced_font = false) { @@ -156,11 +177,9 @@ ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_ // Use a small bitmap with monospaced font, as the error text will not be wrapped. logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/84)); - wxGetApp().UpdateDlgDarkUI(this); - SetMaxSize(wxSize(-1, CONTENT_MAX_HEIGHT*wxGetApp().em_unit())); - Fit(); - this->CenterOnParent(); + + finalize(); } // WarningDialog @@ -173,16 +192,8 @@ WarningDialog::WarningDialog(wxWindow *parent, wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_NAME), wxID_NONE) { add_msg_content(this, content_sizer, message); - - if (style & wxOK) add_btn(wxID_OK, true); - if (style & wxYES) add_btn(wxID_YES); - if (style & wxNO) add_btn(wxID_NO); - - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 84)); - - wxGetApp().UpdateDlgDarkUI(this); - Fit(); - this->CenterOnParent(); + apply_style(style); + finalize(); } #ifdef _WIN32 @@ -195,23 +206,37 @@ MessageDialog::MessageDialog(wxWindow* parent, : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) { add_msg_content(this, content_sizer, message); - - if (style & wxOK) add_btn(wxID_OK, true); - if (style & wxYES) add_btn(wxID_YES); - if (style & wxNO) add_btn(wxID_NO); - if (style & wxCANCEL) add_btn(wxID_CANCEL); - - logo->SetBitmap(create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : - style & wxICON_INFORMATION ? "info" : - style & wxICON_QUESTION ? "question" : "PrusaSlicer_192px_grayscale.png", this, 84)); - - wxGetApp().UpdateDlgDarkUI(this); - Fit(); - this->CenterOnParent(); + apply_style(style); + finalize(); } #endif +// MessageWithCheckDialog + +MessageWithCheckDialog::MessageWithCheckDialog( wxWindow* parent, + const wxString& message, + const wxString& checkbox_label, + const wxString& caption/* = wxEmptyString*/, + long style/* = wxOK*/) + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) +{ + add_msg_content(this, content_sizer, message); + + m_check = new wxCheckBox(this, wxID_ANY, checkbox_label); + content_sizer->Add(m_check, 0, wxTOP, 10); + + apply_style(style); + finalize(); +} + +bool MessageWithCheckDialog::GetCheckVal() +{ + if (m_check) + return m_check->GetValue(); + return false; +} + // InfoDialog InfoDialog::InfoDialog(wxWindow* parent, const wxString &title, const wxString& msg) @@ -222,9 +247,7 @@ InfoDialog::InfoDialog(wxWindow* parent, const wxString &title, const wxString& // Set info bitmap logo->SetBitmap(create_scaled_bitmap("info", this, 84)); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 77617fea1b..d3263f970e 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -43,6 +43,8 @@ protected: MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id = wxID_OK, wxBitmap bitmap = wxNullBitmap); void add_btn(wxWindowID btn_id, bool set_focus = false); + void apply_style(long style); + void finalize(); wxFont boldfont; wxBoxSizer *content_sizer; @@ -113,6 +115,23 @@ public: }; #endif +class MessageWithCheckDialog : public MsgDialog +{ + wxCheckBox* m_check{ nullptr }; +public: + MessageWithCheckDialog(wxWindow* parent, + const wxString& message, + const wxString& checkbox_label, + const wxString& caption = wxEmptyString, + long style = wxOK); + MessageWithCheckDialog(MessageWithCheckDialog&&) = delete; + MessageWithCheckDialog(const MessageWithCheckDialog&) = delete; + MessageWithCheckDialog& operator=(MessageWithCheckDialog&&) = delete; + MessageWithCheckDialog& operator=(const MessageWithCheckDialog&) = delete; + virtual ~MessageWithCheckDialog() = default; + + bool GetCheckVal(); +}; // Generic info dialog, used for displaying exceptions class InfoDialog : public MsgDialog diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ec4fc2d80d..f138c0af17 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2312,6 +2312,9 @@ std::vector Plater::priv::load_files(const std::vector& input_ auto *new_model = (!load_model || one_by_one) ? nullptr : new Slic3r::Model(); std::vector obj_idxs; + int answer_convert_from_meters = wxOK_DEFAULT; + int answer_convert_from_imperial_units = wxOK_DEFAULT; + for (size_t i = 0; i < input_files.size(); ++i) { #ifdef _WIN32 auto path = input_files[i]; @@ -2469,26 +2472,48 @@ std::vector Plater::priv::load_files(const std::vector& input_ // Convert even if the object is big. convert_from_imperial_units(model, false); else if (model.looks_like_saved_in_meters()) { - MessageDialog msg_dlg(q, format_wxstr(_L_PLURAL( - "The dimensions of the object from file %s seem to be defined in meters.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", - "The dimensions of some objects from file %s seem to be defined in meters.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) - //FIXME up-scale only the small parts? - model.convert_from_meters(true); + auto convert_model_if = [](Model& model, bool condition) { + if (condition) + //FIXME up-scale only the small parts? + model.convert_from_meters(true); + }; + if (answer_convert_from_meters == wxOK_DEFAULT) { + MessageWithCheckDialog dlg(q, format_wxstr(_L_PLURAL( + "The dimensions of the object from file %s seem to be defined in meters.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", + "The dimensions of some objects from file %s seem to be defined in meters.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", + _L("Apply to all the remaining small objects being loaded."), + _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + int answer = dlg.ShowModal(); + if (dlg.GetCheckVal()) + answer_convert_from_meters = answer; + else + convert_model_if(model, answer == wxID_YES); + } + convert_model_if(model, answer_convert_from_meters == wxID_YES); } else if (model.looks_like_imperial_units()) { - MessageDialog msg_dlg(q, format_wxstr(_L_PLURAL( - "The dimensions of the object from file %s seem to be defined in inches.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", - "The dimensions of some objects from file %s seem to be defined in inches.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) - //FIXME up-scale only the small parts? - convert_from_imperial_units(model, true); + auto convert_model_if = [convert_from_imperial_units](Model& model, bool condition) { + if (condition) + //FIXME up-scale only the small parts? + convert_from_imperial_units(model, true); + }; + if (answer_convert_from_imperial_units == wxOK_DEFAULT) { + MessageWithCheckDialog dlg(q, format_wxstr(_L_PLURAL( + "The dimensions of the object from file %s seem to be defined in inches.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", + "The dimensions of some objects from file %s seem to be defined in inches.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", + _L("Apply to all the remaining small objects being loaded."), + _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + int answer = dlg.ShowModal(); + if (dlg.GetCheckVal()) + answer_convert_from_imperial_units = answer; + else + convert_model_if(model, answer == wxID_YES); + } + convert_model_if(model, answer_convert_from_imperial_units == wxID_YES); } if (model.looks_like_multipart_object()) { From cd13af59f4c878e0a172478534eeaa1884aed38d Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 26 Oct 2021 16:21:01 +0200 Subject: [PATCH 015/130] Follow-up to 79eb59b9f23c281125dbd0dd989b979fe171a401 Fix of #7168: Crash when layer count exceeds 4095 This time the crash was fixed for top / bottom propagation of multi-material segmentation. --- src/libslic3r/TriangleMeshSlicer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 5be86de99b..e61128c64f 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -332,7 +332,7 @@ void slice_facet_at_zs( if (min_z != max_z && slice_facet(*it, vertices, indices, edge_ids, idx_vertex_lowest, false, il) == FacetSliceType::Slicing) { assert(il.edge_type != IntersectionLine::FacetEdgeType::Horizontal); size_t slice_id = it - zs.begin(); - boost::lock_guard l(lines_mutex[slice_id % 64]); + boost::lock_guard l(lines_mutex[slice_id % lines_mutex.size()]); lines[slice_id].emplace_back(il); } } @@ -446,7 +446,7 @@ void slice_facet_with_slabs( auto emit_slab_edge = [&lines, &lines_mutex](IntersectionLine il, size_t slab_id, bool reverse) { if (reverse) il.reverse(); - boost::lock_guard l(lines_mutex[(slab_id + 32) >> 6]); + boost::lock_guard l(lines_mutex[(slab_id + lines_mutex.size() / 2) % lines_mutex.size()]); lines.between_slices[slab_id].emplace_back(il); }; @@ -472,7 +472,7 @@ void slice_facet_with_slabs( }; // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. // if (! ProjectionFromTop) il.reverse(); - boost::lock_guard l(lines_mutex[line_id >> 6]); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); lines.at_slice[line_id].emplace_back(il); } } else { @@ -582,7 +582,7 @@ void slice_facet_with_slabs( if (! ProjectionFromTop) il.reverse(); size_t line_id = it - zs.begin(); - boost::lock_guard l(lines_mutex[line_id >> 6]); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); lines.at_slice[line_id].emplace_back(il); } } From ea56f00a31e7083bd4c08af13048b3b27843fcd3 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 26 Oct 2021 16:30:41 +0200 Subject: [PATCH 016/130] Fixing handling of project "saved" timestamp on Undo / Redo stack. --- src/slic3r/Utils/UndoRedo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/Utils/UndoRedo.cpp b/src/slic3r/Utils/UndoRedo.cpp index 3ea57edf2b..049de5400a 100644 --- a/src/slic3r/Utils/UndoRedo.cpp +++ b/src/slic3r/Utils/UndoRedo.cpp @@ -1078,7 +1078,7 @@ std::vector::iterator StackImpl::release_snapshots(std::vector= begin->timestamp && (end == m_snapshots.end() || m_saved_snapshot_time < end->timestamp)) { + if (m_saved_snapshot_time != size_t(-1) && m_saved_snapshot_time >= begin->timestamp && (end == m_snapshots.end() || m_saved_snapshot_time < end->timestamp)) { assert(m_saved_snapshot_time <= m_snapshots.back().timestamp); auto it_saved = std::lower_bound(begin, end, Snapshot(m_saved_snapshot_time)); assert(it_saved != m_snapshots.end() && it_saved->timestamp == m_saved_snapshot_time); From e5b51a654dc904416ec1c7bce40b098c7134d616 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 26 Oct 2021 16:35:51 +0200 Subject: [PATCH 017/130] Follow-up to https://github.com/prusa3d/PrusaSlicer/commit/0c29eb9943df769ed045bd88f159406ecf9763ed Next code refactoring: m_support_material_overhangs_queried have to be initialized from outside just once --- src/slic3r/GUI/ConfigManipulation.cpp | 10 ++++------ src/slic3r/GUI/ConfigManipulation.hpp | 13 +++++++++++-- src/slic3r/GUI/Tab.cpp | 11 +++++++---- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index b993192749..0b2af37b8e 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -33,7 +33,7 @@ void ConfigManipulation::toggle_field(const std::string& opt_key, const bool tog cb_toggle_field(opt_key, toggle, opt_index); } -void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config, bool set_support_material_overhangs_queried) +void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config) { // #ys_FIXME_to_delete //! Temporary workaround for the correct updates of the TextCtrl (like "layer_height"): @@ -160,12 +160,10 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con apply(config, &new_conf); } - support_material_overhangs_queried = set_support_material_overhangs_queried; - if (config->opt_bool("support_material")) { // Ask only once. - if (!support_material_overhangs_queried) { - support_material_overhangs_queried = true; + if (!m_support_material_overhangs_queried) { + m_support_material_overhangs_queried = true; if (!config->opt_bool("overhangs")/* != 1*/) { wxString msg_text = _(L("Supports work better, if the following feature is enabled:\n" "- Detect bridging perimeters")); @@ -184,7 +182,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con } } else { - support_material_overhangs_queried = false; + m_support_material_overhangs_queried = false; } if (config->option("fill_density")->value == 100) { diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index 8ebfad0eaa..0b50c8ab0f 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -20,7 +20,9 @@ namespace GUI { class ConfigManipulation { bool is_msg_dlg_already_exist{ false }; - bool support_material_overhangs_queried{ false }; + + bool m_support_material_overhangs_queried{false}; + bool m_is_initialized_support_material_overhangs_queried{ false }; // function to loading of changed configuration std::function load_config = nullptr; @@ -50,12 +52,19 @@ public: void toggle_field(const std::string& field_key, const bool toggle, int opt_index = -1); // FFF print - void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false, bool set_support_material_overhangs_queried = false); + void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false); void toggle_print_fff_options(DynamicPrintConfig* config); // SLA print void update_print_sla_config(DynamicPrintConfig* config, const bool is_global_config = false); void toggle_print_sla_options(DynamicPrintConfig* config); + + bool is_initialized_support_material_overhangs_queried() { return m_is_initialized_support_material_overhangs_queried; } + void initialize_support_material_overhangs_queried(bool queried) + { + m_is_initialized_support_material_overhangs_queried = true; + m_support_material_overhangs_queried = queried; + } }; } // GUI diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a51b0e1607..1a96f4bafe 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1740,11 +1740,14 @@ void TabPrint::update() // Note: This workaround works till "support_material" and "overhangs" is exclusive sets of mutually no-exclusive parameters. // But it should be corrected when we will have more such sets. // Disable check of the compatibility of the "support_material" and "overhangs" options for saved user profile - const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset(); - bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty; - bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs"); + if (!m_config_manipulation.is_initialized_support_material_overhangs_queried()) { + const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset(); + bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty; + bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs"); + m_config_manipulation.initialize_support_material_overhangs_queried(is_user_and_saved_preset && support_material_overhangs_queried); + } - m_config_manipulation.update_print_fff_config(m_config, true, is_user_and_saved_preset && support_material_overhangs_queried); + m_config_manipulation.update_print_fff_config(m_config, true); update_description_lines(); Layout(); From 9a4863a14b8aa27ba4fb9e91157d6c3b6e664703 Mon Sep 17 00:00:00 2001 From: Mark Choi Date: Mon, 25 Oct 2021 21:15:33 +0900 Subject: [PATCH 018/130] Translate error. --- resources/localization/ko/PrusaSlicer_ko_KR.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/localization/ko/PrusaSlicer_ko_KR.po b/resources/localization/ko/PrusaSlicer_ko_KR.po index 804e211418..5a071f1b3a 100644 --- a/resources/localization/ko/PrusaSlicer_ko_KR.po +++ b/resources/localization/ko/PrusaSlicer_ko_KR.po @@ -5190,11 +5190,11 @@ msgstr "레이어 및 둘레" #: src/slic3r/GUI/Tab.cpp:1043 msgid "Vertical shells" -msgstr "쉘 높이" +msgstr "수직 쉘" #: src/slic3r/GUI/Tab.cpp:1054 msgid "Horizontal shells" -msgstr "쉘 너비" +msgstr "수평 쉘" #: src/slic3r/GUI/Tab.cpp:1055 src/libslic3r/PrintConfig.cpp:1790 msgid "Solid layers" From 145f0489b877c17443ca4a9cd82e05d28e987fe3 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 27 Oct 2021 08:56:10 +0200 Subject: [PATCH 019/130] Fixed crash when a part of a multipart object is completely below the printbed --- src/libslic3r/Model.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 2dcf342116..8531ab07e0 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1587,6 +1587,10 @@ unsigned int ModelObject::check_instances_print_volume_state(const Polygon& prin if (vol->is_model_part()) { const Transform3d matrix = model_instance->get_matrix() * vol->get_matrix(); const BoundingBoxf3 bb = vol->mesh().transformed_bounding_box(matrix, 0.0); + if (!bb.defined) { + // this may happen if the part is fully below the printbed, leading to a crash in the following call to its_convex_hull_2d_above() + continue; + } const Polygon volume_hull_2d = its_convex_hull_2d_above(vol->mesh().its, matrix.cast(), 0.0f); ModelInstanceEPrintVolumeState state = printbed_collision_state(printbed_shape, print_volume_height, volume_hull_2d, bb.min.z(), bb.max.z()); if (state == ModelInstancePVS_Inside) From d57cfa981ecac34599a3a58df420d80c720565ae Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Wed, 27 Oct 2021 10:05:09 +0200 Subject: [PATCH 020/130] Construct supports using the trimmed mesh. To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes. To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes. --- src/libslic3r/SLAPrintSteps.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/SLAPrintSteps.cpp b/src/libslic3r/SLAPrintSteps.cpp index adec5735a8..fa7348781d 100644 --- a/src/libslic3r/SLAPrintSteps.cpp +++ b/src/libslic3r/SLAPrintSteps.cpp @@ -559,7 +559,7 @@ void SLAPrint::Steps::slice_model(SLAPrintObject &po) if(po.m_config.supports_enable.getBool() || po.m_config.pad_enable.getBool()) { - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); } } @@ -570,10 +570,8 @@ void SLAPrint::Steps::support_points(SLAPrintObject &po) // If supports are disabled, we can skip the model scan. if(!po.m_config.supports_enable.getBool()) return; - const TriangleMesh &mesh = po.get_mesh_to_slice(); - if (!po.m_supportdata) - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); const ModelObject& mo = *po.m_model_object; From 3f669e70b9a91f3eb6e3911e4baf86b9dbd6e150 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 27 Oct 2021 10:37:35 +0200 Subject: [PATCH 021/130] #7160 - Fixed drag object on mouse move cause wrong color when outside the print area --- src/slic3r/GUI/Selection.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index b15d08c013..a6bcc0b38b 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1712,7 +1712,10 @@ void Selection::set_caches() void Selection::do_add_volume(unsigned int volume_idx) { m_list.insert(volume_idx); - (*m_volumes)[volume_idx]->selected = true; + GLVolume* v = (*m_volumes)[volume_idx]; + v->selected = true; + if (v->hover == GLVolume::HS_Select || v->hover == GLVolume::HS_Deselect) + v->hover = GLVolume::HS_Hover; } void Selection::do_add_volumes(const std::vector& volume_idxs) From 77548df00ff24ef9aae0b5808876b7ac0ec7db17 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 27 Oct 2021 14:33:02 +0200 Subject: [PATCH 022/130] Fixed missing sinking property in objects list for multipart objects with a part completely below the printbed --- src/slic3r/GUI/GLCanvas3D.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 4af16fc1dc..18618e930e 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3895,7 +3895,7 @@ void GLCanvas3D::update_sequential_clearance() bool GLCanvas3D::is_object_sinking(int object_idx) const { for (const GLVolume* v : m_volumes.volumes) { - if (v->object_idx() == object_idx && v->is_sinking()) + if (v->object_idx() == object_idx && (v->is_sinking() || (!v->is_modifier && v->is_below_printbed()))) return true; } return false; From 497905406b34067226d28b75f99ee4294e9458cb Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 27 Oct 2021 15:08:28 +0200 Subject: [PATCH 023/130] New code for minimum enclosing circle by randomized Welzl algorithm. Split the circle code from Geometry.cpp/hpp to Geometry/Circle.cpp,hpp --- src/libslic3r/CMakeLists.txt | 2 + src/libslic3r/Fill/FillBase.cpp | 1 + src/libslic3r/Geometry.cpp | 87 --------------- src/libslic3r/Geometry.hpp | 40 ------- src/libslic3r/Geometry/Circle.cpp | 94 ++++++++++++++++ src/libslic3r/Geometry/Circle.hpp | 173 ++++++++++++++++++++++++++++++ src/slic3r/GUI/3DBed.cpp | 2 +- tests/libslic3r/test_geometry.cpp | 18 ++++ 8 files changed, 289 insertions(+), 128 deletions(-) create mode 100644 src/libslic3r/Geometry/Circle.cpp create mode 100644 src/libslic3r/Geometry/Circle.hpp diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index d42077b9c6..646a64d517 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -114,6 +114,8 @@ add_library(libslic3r STATIC GCodeWriter.hpp Geometry.cpp Geometry.hpp + Geometry/Circle.cpp + Geometry/Circle.hpp Int128.hpp KDTreeIndirect.hpp Layer.cpp diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index a41a11cb79..52653f9759 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -4,6 +4,7 @@ #include "../ClipperUtils.hpp" #include "../EdgeGrid.hpp" #include "../Geometry.hpp" +#include "../Geometry/Circle.hpp" #include "../Point.hpp" #include "../PrintConfig.hpp" #include "../Surface.hpp" diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index dfc463dde5..a999f248bf 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -337,93 +337,6 @@ double rad2deg_dir(double angle) return rad2deg(angle); } -Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) -{ - Vec2ds tmp; - tmp.reserve(std::distance(input_begin, input_end)); - std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); - Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); - return Point::new_scale(center.x(), center.y()); -} - -/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 -/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end -/// lie on. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) -{ - // calculate the centroid of the data set - const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); - const size_t n = std::distance(input_begin, input_end); - const double n_flt = static_cast(n); - const Vec2d centroid { sum / n_flt }; - - // Compute the normalized moments of the data set. - double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; - for (auto it = input_begin; it < input_end; ++it) { - // center/normalize the data. - double Xi {it->x() - centroid.x()}; - double Yi {it->y() - centroid.y()}; - double Zi {Xi*Xi + Yi*Yi}; - Mxy += (Xi*Yi); - Mxx += (Xi*Xi); - Myy += (Yi*Yi); - Mxz += (Xi*Zi); - Myz += (Yi*Zi); - Mzz += (Zi*Zi); - } - - // divide by number of points to get the moments - Mxx /= n_flt; - Myy /= n_flt; - Mxy /= n_flt; - Mxz /= n_flt; - Myz /= n_flt; - Mzz /= n_flt; - - // Compute the coefficients of the characteristic polynomial for the circle - // eq 5.60 - const double Mz {Mxx + Myy}; // xx + yy = z - const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. - const double C3 {4.0*Mz}; - const double C2 {-3.0*(Mz*Mz) - Mzz}; - const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; - const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; - - const double C22 = {C2 + C2}; - const double C33 = {C3 + C3 + C3}; - - // solve the characteristic polynomial with Newton's method. - double xnew = 0.0; - double ynew = 1e20; - - for (size_t i = 0; i < cycles; ++i) { - const double yold {ynew}; - ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); - if (std::abs(ynew) > std::abs(yold)) { - BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; - return Vec2d(std::nan(""), std::nan("")); - } - const double Dy {C1 + xnew*(C22 + xnew*C33)}; - - const double xold {xnew}; - xnew = xold - (ynew / Dy); - - if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here - - if (xnew < 0) { - // reset, we went negative - xnew = 0.0; - } - } - - // compute the determinant and the circle's parameters now that we've solved. - double DET = xnew*xnew - xnew*Mz + Cov_xy; - - Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); - center /= (DET * 2.); - return center + centroid; -} - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval) { Polygons pp; diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index d98cab9c7b..5ecfcaeffe 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -325,38 +325,6 @@ bool liang_barsky_line_clipping( return liang_barsky_line_clipping(x0clip, x1clip, bbox); } -// Ugly named variant, that accepts the squared line -// Don't call me with a nearly zero length vector! -// sympy: -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) -template -int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) -{ - T x0 = - a * c; - T y0 = - b * c; - T d2 = r2 * lv2 - c * c; - if (d2 < T(0)) - return 0; - T d = sqrt(d2); - out.first.x() = (x0 + b * d) / lv2; - out.first.y() = (y0 - a * d) / lv2; - out.second.x() = (x0 - b * d) / lv2; - out.second.y() = (y0 + a * d) / lv2; - return d == T(0) ? 1 : 2; -} -template -int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) -{ - T lv2 = a * a + b * b; - if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { - //FIXME what is the correct epsilon? - // What if the line touches the circle? - return false; - } - return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); -} - Pointf3s convex_hull(Pointf3s points); Polygon convex_hull(Points points); Polygon convex_hull(const Polygons &polygons); @@ -384,14 +352,6 @@ template T angle_to_0_2PI(T angle) return angle; } -/// Find the center of the circle corresponding to the vector of Points as an arc. -Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); -inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - -/// Find the center of the circle corresponding to the vector of Pointfs as an arc. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); -inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval); double linint(double value, double oldmin, double oldmax, double newmin, double newmax); diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp new file mode 100644 index 0000000000..3d7fc02232 --- /dev/null +++ b/src/libslic3r/Geometry/Circle.cpp @@ -0,0 +1,94 @@ +#include "Circle.hpp" + +#include "../Polygon.hpp" + +namespace Slic3r { namespace Geometry { + +Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) +{ + Vec2ds tmp; + tmp.reserve(std::distance(input_begin, input_end)); + std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); + Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); + return Point::new_scale(center.x(), center.y()); +} + +/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 +/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end +/// lie on. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) +{ + // calculate the centroid of the data set + const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); + const size_t n = std::distance(input_begin, input_end); + const double n_flt = static_cast(n); + const Vec2d centroid { sum / n_flt }; + + // Compute the normalized moments of the data set. + double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; + for (auto it = input_begin; it < input_end; ++it) { + // center/normalize the data. + double Xi {it->x() - centroid.x()}; + double Yi {it->y() - centroid.y()}; + double Zi {Xi*Xi + Yi*Yi}; + Mxy += (Xi*Yi); + Mxx += (Xi*Xi); + Myy += (Yi*Yi); + Mxz += (Xi*Zi); + Myz += (Yi*Zi); + Mzz += (Zi*Zi); + } + + // divide by number of points to get the moments + Mxx /= n_flt; + Myy /= n_flt; + Mxy /= n_flt; + Mxz /= n_flt; + Myz /= n_flt; + Mzz /= n_flt; + + // Compute the coefficients of the characteristic polynomial for the circle + // eq 5.60 + const double Mz {Mxx + Myy}; // xx + yy = z + const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. + const double C3 {4.0*Mz}; + const double C2 {-3.0*(Mz*Mz) - Mzz}; + const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; + const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; + + const double C22 = {C2 + C2}; + const double C33 = {C3 + C3 + C3}; + + // solve the characteristic polynomial with Newton's method. + double xnew = 0.0; + double ynew = 1e20; + + for (size_t i = 0; i < cycles; ++i) { + const double yold {ynew}; + ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); + if (std::abs(ynew) > std::abs(yold)) { + BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; + return Vec2d(std::nan(""), std::nan("")); + } + const double Dy {C1 + xnew*(C22 + xnew*C33)}; + + const double xold {xnew}; + xnew = xold - (ynew / Dy); + + if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here + + if (xnew < 0) { + // reset, we went negative + xnew = 0.0; + } + } + + // compute the determinant and the circle's parameters now that we've solved. + double DET = xnew*xnew - xnew*Mz + Cov_xy; + + Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); + center /= (DET * 2.); + return center + centroid; +} + +} } // namespace Slic3r::Geometry diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp new file mode 100644 index 0000000000..b2e38fbf18 --- /dev/null +++ b/src/libslic3r/Geometry/Circle.hpp @@ -0,0 +1,173 @@ +#ifndef slic3r_Geometry_Circle_hpp_ +#define slic3r_Geometry_Circle_hpp_ + +namespace Slic3r { namespace Geometry { + +/// Find the center of the circle corresponding to the vector of Points as an arc. +Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); +inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } + +/// Find the center of the circle corresponding to the vector of Pointfs as an arc. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); +inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } + +// https://en.wikipedia.org/wiki/Circumscribed_circle +// Circumcenter coordinates, Cartesian coordinates +template +bool circle_center(const Vector &a, Vector b, Vector c, Vector ¢er) +{ + using Scalar = typename Vector::Scalar; + b -= a; + c -= a; + if (Scalar d = b.x() * c.y() - b.y() * c.x(); d == 0) + return false; + else { + Vector v = c.squaredNorm() * b - b.squaredNorm() * c; + center = a + Vector(- v.y(), v.x()) / (2 * d); + return true; + } +} + +/* +// Likely a bit more accurate accurate version of circle_center() by centering. +template +bool circle_center_centered(Vector a, Vector b, Vector c, Vector ¢er) +{ + auto bbox_center = 0.5 * (a.cwiseMin(b).cwiseMin(c) + a.cwiseMax(b).cwiseMax(c)); + a -= bbox_center; + b -= bbox_center; + c -= bbox_center; + auto bc = b - c; + auto ca = c - a; + auto ab = a - b; + if (d = ao.x() * bc.y() + bo.x() * ca.y() + co.x() * ab.y(); d == 0) + return false; + else { + center = bbox_center - perp(ao.squaredNorm() * bc + bo.squaredNorm() * ca + co.squaredNorm() * ab) / (2 * d); + return true; + } +} +*/ + +// 2D circle defined by its center and squared radius +template +struct CircleSq { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius2; + + CircleSq(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius2 = (a - center).squaredNorm(); } + CircleSq(const Vector &a, const Vector &b, const Vector &c) { + if (circle_center(a, b, c, this->center)) + this->radius = (a - this->center).squaredNorm(); + else + *this = make_invalid(); + } + + bool invalid() const { return this->radius2 < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius2; } + bool contains_with_eps(const Vector &p, const Scalar relative_epsilon2 = Scalar((1 + 1e-14) * (1 + 1e-14))) const + { Scalar r2 = this->radius2 * relative_epsilon2; return (p - this->center).squaredNorm() < r2; } + + static CircleSq make_invalid() { return Circle { { 0, 0 }, -1 }; } +}; + +// 2D circle defined by its center and radius +template +struct Circle { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius; + + Circle(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius = (a - center).norm(); } + Circle(const Vector &a, const Vector &b, const Vector &c) { + this->center = circle_center(a, b, c); + this->radius = (a - this->center).norm(); + } + template + explicit Circle(const CircleSq &c) : center(c.center), radius(sqrt(c.radius2)) {} + + bool invalid() const { return this->radius < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius * this->radius; } + bool contains_with_eps(const Vector &p, const Scalar relative_epsilon = 1 + 1e-14) const { Scalar r = this->radius * relative_epsilon; return (p - this->center).squaredNorm() < r * r; } + + static Circle make_invalid() { return Circle { { 0, 0 }, -1 }; } +}; + +// Randomized algorithm by Emo Welzl +template +CircleSq smallest_enclosing_circle2_welzl(const Points &points) +{ + using Scalar = typename Vector::Scalar; + + const auto &p0 = points[0].cast(); + auto circle = CircleSq(p0, points[1].cast()); + for (size_t i = 2; i < points.size(); ++ i) + if (const Vector &p = points[i].cast(); ! circle.contains_with_eps(p)) { + // p is the first point on the smallest circle enclosing points[0..i] + auto c = CircleSq(p0, p); + for (size_t j = 1; j < i; ++ j) + if (const Vector &q = points[j].cast(); ! c.contains_with_eps(q)) { + // q is the second point on the smallest circle enclosing points[0..i] + auto c2 = CircleSq(p, q); + for (int k = 0; k < j; ++ k) + if (const Vector &r = points[k].cast(); ! c2.contains_with_eps(r)) { + if (Vector center; circle_center(p, q, r, center)) { + c2.center = center; + c2.radius2 = (center - p).squaredNorm(); + } + } + if (c2.radius2 > 0) + c = c2; + } + if (c.radius2 > 0) + circle = c; + } + return circle; +} + +template +Circle smallest_enclosing_circle_welzl(const Points &points) +{ + return Circle(smallest_enclosing_circle2_welzl(points)); +} + +// Ugly named variant, that accepts the squared line +// Don't call me with a nearly zero length vector! +// sympy: +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) +template +int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) +{ + T x0 = - a * c; + T y0 = - b * c; + T d2 = r2 * lv2 - c * c; + if (d2 < T(0)) + return 0; + T d = sqrt(d2); + out.first.x() = (x0 + b * d) / lv2; + out.first.y() = (y0 - a * d) / lv2; + out.second.x() = (x0 - b * d) / lv2; + out.second.y() = (y0 + a * d) / lv2; + return d == T(0) ? 1 : 2; +} +template +int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) +{ + T lv2 = a * a + b * b; + if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { + //FIXME what is the correct epsilon? + // What if the line touches the circle? + return false; + } + return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); +} + +} } // namespace Slic3r::Geometry + +#endif slic3r_Geometry_Circle_hpp_ diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 8e68673116..ee2fb2e691 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -5,7 +5,7 @@ #include "libslic3r/Polygon.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/BoundingBox.hpp" -#include "libslic3r/Geometry.hpp" +#include "libslic3r/Geometry/Circle.hpp" #include "libslic3r/Tesselate.hpp" #include "libslic3r/PresetBundle.hpp" diff --git a/tests/libslic3r/test_geometry.cpp b/tests/libslic3r/test_geometry.cpp index 8261fe249d..6e13e518c6 100644 --- a/tests/libslic3r/test_geometry.cpp +++ b/tests/libslic3r/test_geometry.cpp @@ -6,6 +6,7 @@ #include "libslic3r/Polyline.hpp" #include "libslic3r/Line.hpp" #include "libslic3r/Geometry.hpp" +#include "libslic3r/Geometry/Circle.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ShortestPath.hpp" @@ -320,6 +321,23 @@ SCENARIO("Circle Fit, TaubinFit with Newton's method", "[Geometry]") { } } +TEST_CASE("smallest_enclosing_circle_welzl", "[Geometry]") { + // Some random points in plane. + Points pts { + { 89243, 4359 }, { 763465, 59687 }, { 3245, 734987 }, { 2459867, 987634 }, { 759866, 67843982 }, { 9754687, 9834658 }, { 87235089, 743984373 }, + { 65874456, 2987546 }, { 98234524, 657654873 }, { 786243598, 287934765 }, { 824356, 734265 }, { 82576449, 7864534 }, { 7826345, 3984765 } + }; + + const auto c = Slic3r::Geometry::smallest_enclosing_circle_welzl(pts); + bool all_inside = std::all_of(pts.begin(), pts.end(), [c](const Point &pt){ return c.contains_with_eps(pt.cast()); }); + auto c2(c); + c2.radius -= 1.; + auto num_on_boundary = std::count_if(pts.begin(), pts.end(), [c2](const Point& pt) { return ! c2.contains_with_eps(pt.cast()); }); + + REQUIRE(all_inside); + REQUIRE(num_on_boundary == 3); +} + SCENARIO("Path chaining", "[Geometry]") { GIVEN("A path") { std::vector points = { Point(26,26),Point(52,26),Point(0,26),Point(26,52),Point(26,0),Point(0,52),Point(52,52),Point(52,0) }; From cf7b6fb19a21ee79aae0272779cfa4e6844b941f Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 27 Oct 2021 16:02:36 +0200 Subject: [PATCH 024/130] Extracted MedialAxis code from Geometry.cpp/hpp, moved to its own files to Geometry/ Moved other Voronoi files to Geometry/ --- src/libslic3r/CMakeLists.txt | 9 +- src/libslic3r/ExPolygon.cpp | 2 +- src/libslic3r/Geometry.cpp | 710 ------------------ src/libslic3r/Geometry.hpp | 44 +- src/libslic3r/Geometry/MedialAxis.cpp | 710 ++++++++++++++++++ src/libslic3r/Geometry/MedialAxis.hpp | 32 + src/libslic3r/Geometry/Voronoi.hpp | 33 + .../{ => Geometry}/VoronoiOffset.cpp | 1 + .../{ => Geometry}/VoronoiOffset.hpp | 4 +- .../{ => Geometry}/VoronoiVisualUtils.hpp | 0 src/libslic3r/MultiMaterialSegmentation.cpp | 2 +- tests/libslic3r/test_voronoi.cpp | 4 +- 12 files changed, 789 insertions(+), 762 deletions(-) create mode 100644 src/libslic3r/Geometry/MedialAxis.cpp create mode 100644 src/libslic3r/Geometry/MedialAxis.hpp create mode 100644 src/libslic3r/Geometry/Voronoi.hpp rename src/libslic3r/{ => Geometry}/VoronoiOffset.cpp (99%) rename src/libslic3r/{ => Geometry}/VoronoiOffset.hpp (99%) rename src/libslic3r/{ => Geometry}/VoronoiVisualUtils.hpp (100%) diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 646a64d517..b5e576d724 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -116,6 +116,12 @@ add_library(libslic3r STATIC Geometry.hpp Geometry/Circle.cpp Geometry/Circle.hpp + Geometry/MedialAxis.Cpp + Geometry/MedialAxis.hpp + Geometry/Voronoi.hpp + Geometry/VoronoiOffset.cpp + Geometry/VoronoiOffset.hpp + Geometry/VoronoiVisualUtils.hpp Int128.hpp KDTreeIndirect.hpp Layer.cpp @@ -220,9 +226,6 @@ add_library(libslic3r STATIC TriangleSelector.cpp TriangleSelector.hpp MTUtils.hpp - VoronoiOffset.cpp - VoronoiOffset.hpp - VoronoiVisualUtils.hpp Zipper.hpp Zipper.cpp MinAreaBoundingBox.hpp diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index bfe0479fea..069c6e6020 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -1,7 +1,7 @@ #include "BoundingBox.hpp" #include "ExPolygon.hpp" #include "Exception.hpp" -#include "Geometry.hpp" +#include "Geometry/MedialAxis.hpp" #include "Polygon.hpp" #include "Line.hpp" #include "ClipperUtils.hpp" diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index a999f248bf..4c24116e46 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -26,185 +26,6 @@ #include -#ifdef SLIC3R_DEBUG -#include "SVG.hpp" -#endif - -#ifdef SLIC3R_DEBUG -namespace boost { namespace polygon { - -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_graphic_utils.hpp header file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -template -class voronoi_visual_utils { - public: - // Discretize parabolic Voronoi edge. - // Parabolic Voronoi edges are always formed by one point and one segment - // from the initial input set. - // - // Args: - // point: input point. - // segment: input segment. - // max_dist: maximum discretization distance. - // discretization: point discretization of the given Voronoi edge. - // - // Template arguments: - // InCT: coordinate type of the input geometries (usually integer). - // Point: point type, should model point concept. - // Segment: segment type, should model segment concept. - // - // Important: - // discretization should contain both edge endpoints initially. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - void - >::type discretize( - const Point& point, - const Segment& segment, - const CT max_dist, - std::vector< Point >* discretization) { - // Apply the linear transformation to move start point of the segment to - // the point with coordinates (0, 0) and the direction of the segment to - // coincide the positive direction of the x-axis. - CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; - - // Compute x-coordinates of the endpoints of the edge - // in the transformed space. - CT projection_start = sqr_segment_length * - get_point_projection((*discretization)[0], segment); - CT projection_end = sqr_segment_length * - get_point_projection((*discretization)[1], segment); - - // Compute parabola parameters in the transformed space. - // Parabola has next representation: - // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). - CT point_vec_x = cast(x(point)) - cast(x(low(segment))); - CT point_vec_y = cast(y(point)) - cast(y(low(segment))); - CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; - CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; - - // Save the last point. - Point last_point = (*discretization)[1]; - discretization->pop_back(); - - // Use stack to avoid recursion. - std::stack point_stack; - point_stack.push(projection_end); - CT cur_x = projection_start; - CT cur_y = parabola_y(cur_x, rot_x, rot_y); - - // Adjust max_dist parameter in the transformed space. - const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; - while (!point_stack.empty()) { - CT new_x = point_stack.top(); - CT new_y = parabola_y(new_x, rot_x, rot_y); - - // Compute coordinates of the point of the parabola that is - // furthest from the current line segment. - CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; - CT mid_y = parabola_y(mid_x, rot_x, rot_y); - - // Compute maximum distance between the given parabolic arc - // and line segment that discretize it. - CT dist = (new_y - cur_y) * (mid_x - cur_x) - - (new_x - cur_x) * (mid_y - cur_y); - dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + - (new_x - cur_x) * (new_x - cur_x)); - if (dist <= max_dist_transformed) { - // Distance between parabola and line segment is less than max_dist. - point_stack.pop(); - CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / - sqr_segment_length + cast(x(low(segment))); - CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / - sqr_segment_length + cast(y(low(segment))); - discretization->push_back(Point(inter_x, inter_y)); - cur_x = new_x; - cur_y = new_y; - } else { - point_stack.push(mid_x); - } - } - - // Update last point. - discretization->back() = last_point; - } - - private: - // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). - static CT parabola_y(CT x, CT a, CT b) { - return ((x - a) * (x - a) + b * b) / (b + b); - } - - // Get normalized length of the distance between: - // 1) point projection onto the segment - // 2) start point of the segment - // Return this length divided by the segment length. This is made to avoid - // sqrt computation during transformation from the initial space to the - // transformed one and vice versa. The assumption is made that projection of - // the point lies between the start-point and endpoint of the segment. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - CT - >::type get_point_projection( - const Point& point, const Segment& segment) { - CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT point_vec_x = x(point) - cast(x(low(segment))); - CT point_vec_y = y(point) - cast(y(low(segment))); - CT sqr_segment_length = - segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; - CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; - return vec_dot / sqr_segment_length; - } - - template - static CT cast(const InCT& value) { - return static_cast(value); - } -}; - -} } // namespace boost::polygon -#endif - -using namespace boost::polygon; // provides also high() and low() - namespace Slic3r { namespace Geometry { // This implementation is based on Andrew's monotone chain 2D convex hull algorithm @@ -562,212 +383,6 @@ arrange(size_t total_parts, const Vec2d &part_size, coordf_t dist, const Boundin } #endif -#ifdef SLIC3R_DEBUG -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_visualizer.cpp file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -namespace Voronoi { namespace Internal { - - typedef double coordinate_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; - typedef boost::polygon::voronoi_diagram VD; - typedef VD::cell_type cell_type; - typedef VD::cell_type::source_index_type source_index_type; - typedef VD::cell_type::source_category_type source_category_type; - typedef VD::edge_type edge_type; - typedef VD::cell_container_type cell_container_type; - typedef VD::cell_container_type vertex_container_type; - typedef VD::edge_container_type edge_container_type; - typedef VD::const_cell_iterator const_cell_iterator; - typedef VD::const_vertex_iterator const_vertex_iterator; - typedef VD::const_edge_iterator const_edge_iterator; - - static const std::size_t EXTERNAL_COLOR = 1; - - inline void color_exterior(const VD::edge_type* edge) - { - if (edge->color() == EXTERNAL_COLOR) - return; - edge->color(EXTERNAL_COLOR); - edge->twin()->color(EXTERNAL_COLOR); - const VD::vertex_type* v = edge->vertex1(); - if (v == NULL || !edge->is_primary()) - return; - v->color(EXTERNAL_COLOR); - const VD::edge_type* e = v->incident_edge(); - do { - color_exterior(e); - e = e->rot_next(); - } while (e != v->incident_edge()); - } - - inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) - { - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); - } - - inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) - { - const cell_type& cell1 = *edge.cell(); - const cell_type& cell2 = *edge.twin()->cell(); - point_type origin, direction; - // Infinite edges could not be created by two segment sites. - if (cell1.contains_point() && cell2.contains_point()) { - point_type p1 = retrieve_point(segments, cell1); - point_type p2 = retrieve_point(segments, cell2); - origin.x((p1.x() + p2.x()) * 0.5); - origin.y((p1.y() + p2.y()) * 0.5); - direction.x(p1.y() - p2.y()); - direction.y(p2.x() - p1.x()); - } else { - origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); - segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; - coordinate_type dx = high(segment).x() - low(segment).x(); - coordinate_type dy = high(segment).y() - low(segment).y(); - if ((low(segment) == origin) ^ cell1.contains_point()) { - direction.x(dy); - direction.y(-dx); - } else { - direction.x(-dy); - direction.y(dx); - } - } - coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); - if (edge.vertex0() == NULL) { - clipped_edge->push_back(point_type( - origin.x() - direction.x() * koef, - origin.y() - direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex0()->x(), edge.vertex0()->y())); - } - if (edge.vertex1() == NULL) { - clipped_edge->push_back(point_type( - origin.x() + direction.x() * koef, - origin.y() + direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex1()->x(), edge.vertex1()->y())); - } - } - - inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) - { - point_type point = edge.cell()->contains_point() ? - retrieve_point(segments, *edge.cell()) : - retrieve_point(segments, *edge.twin()->cell()); - segment_type segment = edge.cell()->contains_point() ? - segments[edge.twin()->cell()->source_index()] : - segments[edge.cell()->source_index()]; - ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); - } - -} /* namespace Internal */ } // namespace Voronoi - -static inline void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) -{ - const double scale = 0.2; - const std::string inputSegmentPointColor = "lightseagreen"; - const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); - const std::string inputSegmentColor = "lightseagreen"; - const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); - - const std::string voronoiPointColor = "black"; - const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); - const std::string voronoiLineColorPrimary = "black"; - const std::string voronoiLineColorSecondary = "green"; - const std::string voronoiArcColor = "red"; - const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); - - const bool internalEdgesOnly = false; - const bool primaryEdgesOnly = false; - - BoundingBox bbox = BoundingBox(lines); - bbox.min(0) -= coord_t(1. / SCALING_FACTOR); - bbox.min(1) -= coord_t(1. / SCALING_FACTOR); - bbox.max(0) += coord_t(1. / SCALING_FACTOR); - bbox.max(1) += coord_t(1. / SCALING_FACTOR); - - ::Slic3r::SVG svg(path, bbox); - - if (polylines != NULL) - svg.draw(*polylines, "lime", "lime", voronoiLineWidth); - -// bbox.scale(1.2); - // For clipping of half-lines to some reasonable value. - // The line will then be clipped by the SVG viewer anyway. - const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); - // For the discretization of the Voronoi parabolic segments. - const double discretization_step = 0.0005 * bbox_dim_max; - - // Make a copy of the input segments with the double type. - std::vector segments; - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) - segments.push_back(Voronoi::Internal::segment_type( - Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), - Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); - - // Color exterior edges. - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) - if (!it->is_finite()) - Voronoi::Internal::color_exterior(&(*it)); - - // Draw the end points of the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { - svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); - svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); - } - // Draw the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) - svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); - -#if 1 - // Draw voronoi vertices. - for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) - if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) - svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); - - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { - if (primaryEdgesOnly && !it->is_primary()) - continue; - if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) - continue; - std::vector samples; - std::string color = voronoiLineColorPrimary; - if (!it->is_finite()) { - Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); - if (! it->is_primary()) - color = voronoiLineColorSecondary; - } else { - // Store both points of the segment into samples. sample_curved_edge will split the initial line - // until the discretization_step is reached. - samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); - samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); - if (it->is_curved()) { - Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); - color = voronoiArcColor; - } else if (! it->is_primary()) - color = voronoiLineColorSecondary; - } - for (std::size_t i = 0; i + 1 < samples.size(); ++i) - svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); - } -#endif - - if (polylines != NULL) - svg.draw(*polylines, "blue", voronoiLineWidth); - - svg.Close(); -} -#endif /* SLIC3R_DEBUG */ - // Euclidian distance of two boost::polygon points. template T dist(const boost::polygon::point_data &p1,const boost::polygon::point_data &p2) @@ -791,331 +406,6 @@ inline point_type project_point_to_segment(segment_type &seg, point_type &px) return point_type(p0(0) + t*dir(0), p0(1) + t*dir(1)); } -template -inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) -{ - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); -} - -template -inline std::pair -measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) -{ - typedef typename VD::coord_type T; - const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); - const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); - const typename VD::cell_type &cell1 = *edge.cell(); - const typename VD::cell_type &cell2 = *edge.twin()->cell(); - if (cell1.contains_segment()) { - if (cell2.contains_segment()) { - // Both cells contain a linear segment, the left / right cells are symmetric. - // Project pa, pb to the left segment. - const typename VD::segment_type segment1 = segments[cell1.source_index()]; - const typename VD::point_type p1a = project_point_to_segment(segment1, pa); - const typename VD::point_type p1b = project_point_to_segment(segment1, pb); - return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); - } else { - // 1st cell contains a linear segment, 2nd cell contains a point. - // The medial axis between the cells is a parabolic arc. - // Project pa, pb to the left segment. - const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); - return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); - } - } else if (cell2.contains_segment()) { - // 1st cell contains a point, 2nd cell contains a linear segment. - // The medial axis between the cells is a parabolic arc. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } else { - // Both cells contain a point. The left / right regions are triangular and symmetric. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } -} - -// Converts the Line instances of Lines vector to VD::segment_type. -template -class Lines2VDSegments -{ -public: - Lines2VDSegments(const Lines &alines) : lines(alines) {} - typename VD::segment_type operator[](size_t idx) const { - return typename VD::segment_type( - typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), - typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); - } -private: - const Lines &lines; -}; - -void -MedialAxis::build(ThickPolylines* polylines) -{ - construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); - - /* - // DEBUG: dump all Voronoi edges - { - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - if (edge->is_infinite()) continue; - - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polylines->push_back(polyline); - } - return; - } - */ - - //typedef const VD::vertex_type vert_t; - typedef const VD::edge_type edge_t; - - // collect valid edges (i.e. prune those not belonging to MAT) - // note: this keeps twins, so it inserts twice the number of the valid edges - this->valid_edges.clear(); - { - std::set seen_edges; - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - // if we only process segments representing closed loops, none if the - // infinite edges (if any) would be part of our MAT anyway - if (edge->is_secondary() || edge->is_infinite()) continue; - - // don't re-validate twins - if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? - seen_edges.insert(&*edge); - seen_edges.insert(edge->twin()); - - if (!this->validate_edge(&*edge)) continue; - this->valid_edges.insert(&*edge); - this->valid_edges.insert(edge->twin()); - } - } - this->edges = this->valid_edges; - - // iterate through the valid edges to build polylines - while (!this->edges.empty()) { - const edge_t* edge = *this->edges.begin(); - - // start a polyline - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polyline.width.push_back(this->thickness[edge].first); - polyline.width.push_back(this->thickness[edge].second); - - // remove this edge and its twin from the available edges - (void)this->edges.erase(edge); - (void)this->edges.erase(edge->twin()); - - // get next points - this->process_edge_neighbors(edge, &polyline); - - // get previous points - { - ThickPolyline rpolyline; - this->process_edge_neighbors(edge->twin(), &rpolyline); - polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); - polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); - polyline.endpoints.first = rpolyline.endpoints.second; - } - - assert(polyline.width.size() == polyline.points.size()*2 - 2); - - // prevent loop endpoints from being extended - if (polyline.first_point() == polyline.last_point()) { - polyline.endpoints.first = false; - polyline.endpoints.second = false; - } - - // append polyline to result - polylines->push_back(polyline); - } - - #ifdef SLIC3R_DEBUG - { - static int iRun = 0; - dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); - printf("Thick lines: "); - for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { - ThickLines lines = it->thicklines(); - for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { - printf("%f,%f ", it2->a_width, it2->b_width); - } - } - printf("\n"); - } - #endif /* SLIC3R_DEBUG */ -} - -void -MedialAxis::build(Polylines* polylines) -{ - ThickPolylines tp; - this->build(&tp); - polylines->insert(polylines->end(), tp.begin(), tp.end()); -} - -void -MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) -{ - while (true) { - // Since rot_next() works on the edge starting point but we want - // to find neighbors on the ending point, we just swap edge with - // its twin. - const VD::edge_type* twin = edge->twin(); - - // count neighbors for this edge - std::vector neighbors; - for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; - neighbor = neighbor->rot_next()) { - if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); - } - - // if we have a single neighbor then we can continue recursively - if (neighbors.size() == 1) { - const VD::edge_type* neighbor = neighbors.front(); - - // break if this is a closed loop - if (this->edges.count(neighbor) == 0) return; - - Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); - polyline->points.push_back(new_point); - polyline->width.push_back(this->thickness[neighbor].first); - polyline->width.push_back(this->thickness[neighbor].second); - (void)this->edges.erase(neighbor); - (void)this->edges.erase(neighbor->twin()); - edge = neighbor; - } else if (neighbors.size() == 0) { - polyline->endpoints.second = true; - return; - } else { - // T-shaped or star-shaped joint - return; - } - } -} - -bool MedialAxis::validate_edge(const VD::edge_type* edge) -{ - // prevent overflows and detect almost-infinite edges -#ifndef CLIPPERLIB_INT32 - if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) - return false; -#endif // CLIPPERLIB_INT32 - - // construct the line representing this edge of the Voronoi diagram - const Line line( - Point( edge->vertex0()->x(), edge->vertex0()->y() ), - Point( edge->vertex1()->x(), edge->vertex1()->y() ) - ); - - // discard edge if it lies outside the supplied shape - // this could maybe be optimized (checking inclusion of the endpoints - // might give false positives as they might belong to the contour itself) - if (this->expolygon != NULL) { - if (line.a == line.b) { - // in this case, contains(line) returns a false positive - if (!this->expolygon->contains(line.a)) return false; - } else { - if (!this->expolygon->contains(line)) return false; - } - } - - // retrieve the original line segments which generated the edge we're checking - const VD::cell_type* cell_l = edge->cell(); - const VD::cell_type* cell_r = edge->twin()->cell(); - const Line &segment_l = this->retrieve_segment(cell_l); - const Line &segment_r = this->retrieve_segment(cell_r); - - /* - SVG svg("edge.svg"); - svg.draw(*this->expolygon); - svg.draw(line); - svg.draw(segment_l, "red"); - svg.draw(segment_r, "blue"); - svg.Close(); - */ - - /* Calculate thickness of the cross-section at both the endpoints of this edge. - Our Voronoi edge is part of a CCW sequence going around its Voronoi cell - located on the left side. (segment_l). - This edge's twin goes around segment_r. Thus, segment_r is - oriented in the same direction as our main edge, and segment_l is oriented - in the same direction as our twin edge. - We used to only consider the (half-)distances to segment_r, and that works - whenever segment_l and segment_r are almost specular and facing. However, - at curves they are staggered and they only face for a very little length - (our very short edge represents such visibility). - Both w0 and w1 can be calculated either towards cell_l or cell_r with equal - results by Voronoi definition. - When cell_l or cell_r don't refer to the segment but only to an endpoint, we - calculate the distance to that endpoint instead. */ - - coordf_t w0 = cell_r->contains_segment() - ? segment_r.distance_to(line.a)*2 - : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; - - coordf_t w1 = cell_l->contains_segment() - ? segment_l.distance_to(line.b)*2 - : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; - - if (cell_l->contains_segment() && cell_r->contains_segment()) { - // calculate the relative angle between the two boundary segments - double angle = fabs(segment_r.orientation() - segment_l.orientation()); - if (angle > PI) angle = 2*PI - angle; - assert(angle >= 0 && angle <= PI); - - // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) - // we're interested only in segments close to the second case (facing segments) - // so we allow some tolerance. - // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) - // we don't run it on edges not generated by two segments (thus generated by one segment - // and the endpoint of another segment), since their orientation would not be meaningful - if (PI - angle > PI/8) { - // angle is not narrow enough - - // only apply this filter to segments that are not too short otherwise their - // angle could possibly be not meaningful - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) - return false; - } - } else { - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) - return false; - } - - if (w0 < this->min_width && w1 < this->min_width) - return false; - - if (w0 > this->max_width && w1 > this->max_width) - return false; - - this->thickness[edge] = std::make_pair(w0, w1); - this->thickness[edge->twin()] = std::make_pair(w1, w0); - - return true; -} - -const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const -{ - return this->lines[cell->source_index()]; -} - -const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const -{ - const Line& line = this->retrieve_segment(cell); - if (cell->source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) { - return line.a; - } else { - return line.b; - } -} - void assemble_transform(Transform3d& transform, const Vec3d& translation, const Vec3d& rotation, const Vec3d& scale, const Vec3d& mirror) { transform = Transform3d::Identity(); diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index 5ecfcaeffe..179f062cad 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -10,18 +10,6 @@ // Serialization through the Cereal library #include -#define BOOST_VORONOI_USE_GMP 1 - -#ifdef _MSC_VER -// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned -#pragma warning(push) -#pragma warning(disable : 4146) -#endif // _MSC_VER -#include "boost/polygon/voronoi.hpp" -#ifdef _MSC_VER -#pragma warning(pop) -#endif // _MSC_VER - namespace Slic3r { namespace ClipperLib { @@ -47,7 +35,7 @@ enum Orientation // and d is limited to 63 bits + signum and we are good. static inline Orientation orient(const Point &a, const Point &b, const Point &c) { - // BOOST_STATIC_ASSERT(sizeof(coord_t) * 2 == sizeof(int64_t)); + static_assert(sizeof(coord_t) * 2 == sizeof(int64_t), "orient works with 32 bit coordinates"); int64_t u = int64_t(b(0)) * int64_t(c(1)) - int64_t(b(1)) * int64_t(c(0)); int64_t v = int64_t(a(0)) * int64_t(c(1)) - int64_t(a(1)) * int64_t(c(0)); int64_t w = int64_t(a(0)) * int64_t(b(1)) - int64_t(a(1)) * int64_t(b(0)); @@ -361,36 +349,6 @@ bool arrange( // output Pointfs &positions); -class VoronoiDiagram : public boost::polygon::voronoi_diagram { -public: - typedef double coord_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; -}; - -class MedialAxis { -public: - Lines lines; - const ExPolygon* expolygon; - double max_width; - double min_width; - MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) - : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; - void build(ThickPolylines* polylines); - void build(Polylines* polylines); - -private: - using VD = VoronoiDiagram; - VD vd; - std::set edges, valid_edges; - std::map > thickness; - void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); - bool validate_edge(const VD::edge_type* edge); - const Line& retrieve_segment(const VD::cell_type* cell) const; - const Point& retrieve_endpoint(const VD::cell_type* cell) const; -}; - // Sets the given transform by assembling the given transformations in the following order: // 1) mirror // 2) scale diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp new file mode 100644 index 0000000000..60af8fa475 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -0,0 +1,710 @@ +#include "MedialAxis.hpp" + +#ifdef SLIC3R_DEBUG +namespace boost { namespace polygon { + +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_graphic_utils.hpp header file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +template +class voronoi_visual_utils { + public: + // Discretize parabolic Voronoi edge. + // Parabolic Voronoi edges are always formed by one point and one segment + // from the initial input set. + // + // Args: + // point: input point. + // segment: input segment. + // max_dist: maximum discretization distance. + // discretization: point discretization of the given Voronoi edge. + // + // Template arguments: + // InCT: coordinate type of the input geometries (usually integer). + // Point: point type, should model point concept. + // Segment: segment type, should model segment concept. + // + // Important: + // discretization should contain both edge endpoints initially. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + void + >::type discretize( + const Point& point, + const Segment& segment, + const CT max_dist, + std::vector< Point >* discretization) { + // Apply the linear transformation to move start point of the segment to + // the point with coordinates (0, 0) and the direction of the segment to + // coincide the positive direction of the x-axis. + CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; + + // Compute x-coordinates of the endpoints of the edge + // in the transformed space. + CT projection_start = sqr_segment_length * + get_point_projection((*discretization)[0], segment); + CT projection_end = sqr_segment_length * + get_point_projection((*discretization)[1], segment); + + // Compute parabola parameters in the transformed space. + // Parabola has next representation: + // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). + CT point_vec_x = cast(x(point)) - cast(x(low(segment))); + CT point_vec_y = cast(y(point)) - cast(y(low(segment))); + CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; + CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; + + // Save the last point. + Point last_point = (*discretization)[1]; + discretization->pop_back(); + + // Use stack to avoid recursion. + std::stack point_stack; + point_stack.push(projection_end); + CT cur_x = projection_start; + CT cur_y = parabola_y(cur_x, rot_x, rot_y); + + // Adjust max_dist parameter in the transformed space. + const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; + while (!point_stack.empty()) { + CT new_x = point_stack.top(); + CT new_y = parabola_y(new_x, rot_x, rot_y); + + // Compute coordinates of the point of the parabola that is + // furthest from the current line segment. + CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; + CT mid_y = parabola_y(mid_x, rot_x, rot_y); + + // Compute maximum distance between the given parabolic arc + // and line segment that discretize it. + CT dist = (new_y - cur_y) * (mid_x - cur_x) - + (new_x - cur_x) * (mid_y - cur_y); + dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + + (new_x - cur_x) * (new_x - cur_x)); + if (dist <= max_dist_transformed) { + // Distance between parabola and line segment is less than max_dist. + point_stack.pop(); + CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / + sqr_segment_length + cast(x(low(segment))); + CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / + sqr_segment_length + cast(y(low(segment))); + discretization->push_back(Point(inter_x, inter_y)); + cur_x = new_x; + cur_y = new_y; + } else { + point_stack.push(mid_x); + } + } + + // Update last point. + discretization->back() = last_point; + } + + private: + // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). + static CT parabola_y(CT x, CT a, CT b) { + return ((x - a) * (x - a) + b * b) / (b + b); + } + + // Get normalized length of the distance between: + // 1) point projection onto the segment + // 2) start point of the segment + // Return this length divided by the segment length. This is made to avoid + // sqrt computation during transformation from the initial space to the + // transformed one and vice versa. The assumption is made that projection of + // the point lies between the start-point and endpoint of the segment. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + CT + >::type get_point_projection( + const Point& point, const Segment& segment) { + CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT point_vec_x = x(point) - cast(x(low(segment))); + CT point_vec_y = y(point) - cast(y(low(segment))); + CT sqr_segment_length = + segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; + CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; + return vec_dot / sqr_segment_length; + } + + template + static CT cast(const InCT& value) { + return static_cast(value); + } +}; + +} } // namespace boost::polygon +#endif // SLIC3R_DEBUG + +namespace Slic3r { namespace Geometry { + + +#ifdef SLIC3R_DEBUG +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_visualizer.cpp file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +namespace Voronoi { namespace Internal { + + typedef double coordinate_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; + typedef boost::polygon::voronoi_diagram VD; + typedef VD::cell_type cell_type; + typedef VD::cell_type::source_index_type source_index_type; + typedef VD::cell_type::source_category_type source_category_type; + typedef VD::edge_type edge_type; + typedef VD::cell_container_type cell_container_type; + typedef VD::cell_container_type vertex_container_type; + typedef VD::edge_container_type edge_container_type; + typedef VD::const_cell_iterator const_cell_iterator; + typedef VD::const_vertex_iterator const_vertex_iterator; + typedef VD::const_edge_iterator const_edge_iterator; + + static const std::size_t EXTERNAL_COLOR = 1; + + inline void color_exterior(const VD::edge_type* edge) + { + if (edge->color() == EXTERNAL_COLOR) + return; + edge->color(EXTERNAL_COLOR); + edge->twin()->color(EXTERNAL_COLOR); + const VD::vertex_type* v = edge->vertex1(); + if (v == NULL || !edge->is_primary()) + return; + v->color(EXTERNAL_COLOR); + const VD::edge_type* e = v->incident_edge(); + do { + color_exterior(e); + e = e->rot_next(); + } while (e != v->incident_edge()); + } + + inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) + { + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); + } + + inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) + { + const cell_type& cell1 = *edge.cell(); + const cell_type& cell2 = *edge.twin()->cell(); + point_type origin, direction; + // Infinite edges could not be created by two segment sites. + if (cell1.contains_point() && cell2.contains_point()) { + point_type p1 = retrieve_point(segments, cell1); + point_type p2 = retrieve_point(segments, cell2); + origin.x((p1.x() + p2.x()) * 0.5); + origin.y((p1.y() + p2.y()) * 0.5); + direction.x(p1.y() - p2.y()); + direction.y(p2.x() - p1.x()); + } else { + origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); + segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; + coordinate_type dx = high(segment).x() - low(segment).x(); + coordinate_type dy = high(segment).y() - low(segment).y(); + if ((low(segment) == origin) ^ cell1.contains_point()) { + direction.x(dy); + direction.y(-dx); + } else { + direction.x(-dy); + direction.y(dx); + } + } + coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); + if (edge.vertex0() == NULL) { + clipped_edge->push_back(point_type( + origin.x() - direction.x() * koef, + origin.y() - direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex0()->x(), edge.vertex0()->y())); + } + if (edge.vertex1() == NULL) { + clipped_edge->push_back(point_type( + origin.x() + direction.x() * koef, + origin.y() + direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex1()->x(), edge.vertex1()->y())); + } + } + + inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) + { + point_type point = edge.cell()->contains_point() ? + retrieve_point(segments, *edge.cell()) : + retrieve_point(segments, *edge.twin()->cell()); + segment_type segment = edge.cell()->contains_point() ? + segments[edge.twin()->cell()->source_index()] : + segments[edge.cell()->source_index()]; + ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); + } + +} /* namespace Internal */ } // namespace Voronoi + +void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) +{ + const double scale = 0.2; + const std::string inputSegmentPointColor = "lightseagreen"; + const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); + const std::string inputSegmentColor = "lightseagreen"; + const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); + + const std::string voronoiPointColor = "black"; + const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); + const std::string voronoiLineColorPrimary = "black"; + const std::string voronoiLineColorSecondary = "green"; + const std::string voronoiArcColor = "red"; + const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); + + const bool internalEdgesOnly = false; + const bool primaryEdgesOnly = false; + + BoundingBox bbox = BoundingBox(lines); + bbox.min(0) -= coord_t(1. / SCALING_FACTOR); + bbox.min(1) -= coord_t(1. / SCALING_FACTOR); + bbox.max(0) += coord_t(1. / SCALING_FACTOR); + bbox.max(1) += coord_t(1. / SCALING_FACTOR); + + ::Slic3r::SVG svg(path, bbox); + + if (polylines != NULL) + svg.draw(*polylines, "lime", "lime", voronoiLineWidth); + +// bbox.scale(1.2); + // For clipping of half-lines to some reasonable value. + // The line will then be clipped by the SVG viewer anyway. + const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); + // For the discretization of the Voronoi parabolic segments. + const double discretization_step = 0.0005 * bbox_dim_max; + + // Make a copy of the input segments with the double type. + std::vector segments; + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) + segments.push_back(Voronoi::Internal::segment_type( + Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), + Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); + + // Color exterior edges. + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) + if (!it->is_finite()) + Voronoi::Internal::color_exterior(&(*it)); + + // Draw the end points of the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { + svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); + svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); + } + // Draw the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) + svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); + +#if 1 + // Draw voronoi vertices. + for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) + if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) + svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); + + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { + if (primaryEdgesOnly && !it->is_primary()) + continue; + if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) + continue; + std::vector samples; + std::string color = voronoiLineColorPrimary; + if (!it->is_finite()) { + Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); + if (! it->is_primary()) + color = voronoiLineColorSecondary; + } else { + // Store both points of the segment into samples. sample_curved_edge will split the initial line + // until the discretization_step is reached. + samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); + samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); + if (it->is_curved()) { + Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); + color = voronoiArcColor; + } else if (! it->is_primary()) + color = voronoiLineColorSecondary; + } + for (std::size_t i = 0; i + 1 < samples.size(); ++i) + svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); + } +#endif + + if (polylines != NULL) + svg.draw(*polylines, "blue", voronoiLineWidth); + + svg.Close(); +} +#endif // SLIC3R_DEBUG + +template +inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) +{ + assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); +} + +template +inline std::pair +measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) +{ + typedef typename VD::coord_type T; + const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); + const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); + const typename VD::cell_type &cell1 = *edge.cell(); + const typename VD::cell_type &cell2 = *edge.twin()->cell(); + if (cell1.contains_segment()) { + if (cell2.contains_segment()) { + // Both cells contain a linear segment, the left / right cells are symmetric. + // Project pa, pb to the left segment. + const typename VD::segment_type segment1 = segments[cell1.source_index()]; + const typename VD::point_type p1a = project_point_to_segment(segment1, pa); + const typename VD::point_type p1b = project_point_to_segment(segment1, pb); + return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); + } else { + // 1st cell contains a linear segment, 2nd cell contains a point. + // The medial axis between the cells is a parabolic arc. + // Project pa, pb to the left segment. + const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); + return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); + } + } else if (cell2.contains_segment()) { + // 1st cell contains a point, 2nd cell contains a linear segment. + // The medial axis between the cells is a parabolic arc. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } else { + // Both cells contain a point. The left / right regions are triangular and symmetric. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } +} + +// Converts the Line instances of Lines vector to VD::segment_type. +template +class Lines2VDSegments +{ +public: + Lines2VDSegments(const Lines &alines) : lines(alines) {} + typename VD::segment_type operator[](size_t idx) const { + return typename VD::segment_type( + typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), + typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); + } +private: + const Lines &lines; +}; + +void +MedialAxis::build(ThickPolylines* polylines) +{ + construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); + + /* + // DEBUG: dump all Voronoi edges + { + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + if (edge->is_infinite()) continue; + + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polylines->push_back(polyline); + } + return; + } + */ + + //typedef const VD::vertex_type vert_t; + typedef const VD::edge_type edge_t; + + // collect valid edges (i.e. prune those not belonging to MAT) + // note: this keeps twins, so it inserts twice the number of the valid edges + this->valid_edges.clear(); + { + std::set seen_edges; + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + // if we only process segments representing closed loops, none if the + // infinite edges (if any) would be part of our MAT anyway + if (edge->is_secondary() || edge->is_infinite()) continue; + + // don't re-validate twins + if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? + seen_edges.insert(&*edge); + seen_edges.insert(edge->twin()); + + if (!this->validate_edge(&*edge)) continue; + this->valid_edges.insert(&*edge); + this->valid_edges.insert(edge->twin()); + } + } + this->edges = this->valid_edges; + + // iterate through the valid edges to build polylines + while (!this->edges.empty()) { + const edge_t* edge = *this->edges.begin(); + + // start a polyline + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polyline.width.push_back(this->thickness[edge].first); + polyline.width.push_back(this->thickness[edge].second); + + // remove this edge and its twin from the available edges + (void)this->edges.erase(edge); + (void)this->edges.erase(edge->twin()); + + // get next points + this->process_edge_neighbors(edge, &polyline); + + // get previous points + { + ThickPolyline rpolyline; + this->process_edge_neighbors(edge->twin(), &rpolyline); + polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); + polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); + polyline.endpoints.first = rpolyline.endpoints.second; + } + + assert(polyline.width.size() == polyline.points.size()*2 - 2); + + // prevent loop endpoints from being extended + if (polyline.first_point() == polyline.last_point()) { + polyline.endpoints.first = false; + polyline.endpoints.second = false; + } + + // append polyline to result + polylines->push_back(polyline); + } + + #ifdef SLIC3R_DEBUG + { + static int iRun = 0; + dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); + printf("Thick lines: "); + for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { + ThickLines lines = it->thicklines(); + for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { + printf("%f,%f ", it2->a_width, it2->b_width); + } + } + printf("\n"); + } + #endif /* SLIC3R_DEBUG */ +} + +void +MedialAxis::build(Polylines* polylines) +{ + ThickPolylines tp; + this->build(&tp); + polylines->insert(polylines->end(), tp.begin(), tp.end()); +} + +void +MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) +{ + while (true) { + // Since rot_next() works on the edge starting point but we want + // to find neighbors on the ending point, we just swap edge with + // its twin. + const VD::edge_type* twin = edge->twin(); + + // count neighbors for this edge + std::vector neighbors; + for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; + neighbor = neighbor->rot_next()) { + if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); + } + + // if we have a single neighbor then we can continue recursively + if (neighbors.size() == 1) { + const VD::edge_type* neighbor = neighbors.front(); + + // break if this is a closed loop + if (this->edges.count(neighbor) == 0) return; + + Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); + polyline->points.push_back(new_point); + polyline->width.push_back(this->thickness[neighbor].first); + polyline->width.push_back(this->thickness[neighbor].second); + (void)this->edges.erase(neighbor); + (void)this->edges.erase(neighbor->twin()); + edge = neighbor; + } else if (neighbors.size() == 0) { + polyline->endpoints.second = true; + return; + } else { + // T-shaped or star-shaped joint + return; + } + } +} + +bool MedialAxis::validate_edge(const VD::edge_type* edge) +{ + // prevent overflows and detect almost-infinite edges +#ifndef CLIPPERLIB_INT32 + if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) + return false; +#endif // CLIPPERLIB_INT32 + + // construct the line representing this edge of the Voronoi diagram + const Line line( + Point( edge->vertex0()->x(), edge->vertex0()->y() ), + Point( edge->vertex1()->x(), edge->vertex1()->y() ) + ); + + // discard edge if it lies outside the supplied shape + // this could maybe be optimized (checking inclusion of the endpoints + // might give false positives as they might belong to the contour itself) + if (this->expolygon != NULL) { + if (line.a == line.b) { + // in this case, contains(line) returns a false positive + if (!this->expolygon->contains(line.a)) return false; + } else { + if (!this->expolygon->contains(line)) return false; + } + } + + // retrieve the original line segments which generated the edge we're checking + const VD::cell_type* cell_l = edge->cell(); + const VD::cell_type* cell_r = edge->twin()->cell(); + const Line &segment_l = this->retrieve_segment(cell_l); + const Line &segment_r = this->retrieve_segment(cell_r); + + /* + SVG svg("edge.svg"); + svg.draw(*this->expolygon); + svg.draw(line); + svg.draw(segment_l, "red"); + svg.draw(segment_r, "blue"); + svg.Close(); + */ + + /* Calculate thickness of the cross-section at both the endpoints of this edge. + Our Voronoi edge is part of a CCW sequence going around its Voronoi cell + located on the left side. (segment_l). + This edge's twin goes around segment_r. Thus, segment_r is + oriented in the same direction as our main edge, and segment_l is oriented + in the same direction as our twin edge. + We used to only consider the (half-)distances to segment_r, and that works + whenever segment_l and segment_r are almost specular and facing. However, + at curves they are staggered and they only face for a very little length + (our very short edge represents such visibility). + Both w0 and w1 can be calculated either towards cell_l or cell_r with equal + results by Voronoi definition. + When cell_l or cell_r don't refer to the segment but only to an endpoint, we + calculate the distance to that endpoint instead. */ + + coordf_t w0 = cell_r->contains_segment() + ? segment_r.distance_to(line.a)*2 + : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; + + coordf_t w1 = cell_l->contains_segment() + ? segment_l.distance_to(line.b)*2 + : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; + + if (cell_l->contains_segment() && cell_r->contains_segment()) { + // calculate the relative angle between the two boundary segments + double angle = fabs(segment_r.orientation() - segment_l.orientation()); + if (angle > PI) angle = 2*PI - angle; + assert(angle >= 0 && angle <= PI); + + // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) + // we're interested only in segments close to the second case (facing segments) + // so we allow some tolerance. + // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) + // we don't run it on edges not generated by two segments (thus generated by one segment + // and the endpoint of another segment), since their orientation would not be meaningful + if (PI - angle > PI/8) { + // angle is not narrow enough + + // only apply this filter to segments that are not too short otherwise their + // angle could possibly be not meaningful + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) + return false; + } + } else { + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) + return false; + } + + if (w0 < this->min_width && w1 < this->min_width) + return false; + + if (w0 > this->max_width && w1 > this->max_width) + return false; + + this->thickness[edge] = std::make_pair(w0, w1); + this->thickness[edge->twin()] = std::make_pair(w1, w0); + + return true; +} + +const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const +{ + return this->lines[cell->source_index()]; +} + +const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const +{ + const Line& line = this->retrieve_segment(cell); + if (cell->source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) { + return line.a; + } else { + return line.b; + } +} + +} } // namespace Slicer::Geometry diff --git a/src/libslic3r/Geometry/MedialAxis.hpp b/src/libslic3r/Geometry/MedialAxis.hpp new file mode 100644 index 0000000000..4189b5d4e8 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.hpp @@ -0,0 +1,32 @@ +#ifndef slic3r_Geometry_MedialAxis_hpp_ +#define slic3r_Geometry_MedialAxis_hpp_ + +#include "Voronoi.hpp" + +namespace Slic3r { namespace Geometry { + +class MedialAxis { +public: + Lines lines; + const ExPolygon* expolygon; + double max_width; + double min_width; + MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) + : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; + void build(ThickPolylines* polylines); + void build(Polylines* polylines); + +private: + using VD = VoronoiDiagram; + VD vd; + std::set edges, valid_edges; + std::map > thickness; + void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); + bool validate_edge(const VD::edge_type* edge); + const Line& retrieve_segment(const VD::cell_type* cell) const; + const Point& retrieve_endpoint(const VD::cell_type* cell) const; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_MedialAxis_hpp_ diff --git a/src/libslic3r/Geometry/Voronoi.hpp b/src/libslic3r/Geometry/Voronoi.hpp new file mode 100644 index 0000000000..5529750f3b --- /dev/null +++ b/src/libslic3r/Geometry/Voronoi.hpp @@ -0,0 +1,33 @@ +#ifndef slic3r_Geometry_Voronoi_hpp_ +#define slic3r_Geometry_Voronoi_hpp_ + +#include "../Line.hpp" +#include "../Polyline.hpp" + +#define BOOST_VORONOI_USE_GMP 1 + +#ifdef _MSC_VER +// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned +#pragma warning(push) +#pragma warning(disable : 4146) +#endif // _MSC_VER +#include "boost/polygon/voronoi.hpp" +#ifdef _MSC_VER +#pragma warning(pop) +#endif // _MSC_VER + +namespace Slic3r { + +namespace Geometry { + +class VoronoiDiagram : public boost::polygon::voronoi_diagram { +public: + typedef double coord_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_Voronoi_hpp_ diff --git a/src/libslic3r/VoronoiOffset.cpp b/src/libslic3r/Geometry/VoronoiOffset.cpp similarity index 99% rename from src/libslic3r/VoronoiOffset.cpp rename to src/libslic3r/Geometry/VoronoiOffset.cpp index e8d13a6ad0..46105220a4 100644 --- a/src/libslic3r/VoronoiOffset.cpp +++ b/src/libslic3r/Geometry/VoronoiOffset.cpp @@ -1,5 +1,6 @@ // Polygon offsetting using Voronoi diagram prodiced by boost::polygon. +#include "Geometry.hpp" #include "VoronoiOffset.hpp" #include "libslic3r.h" diff --git a/src/libslic3r/VoronoiOffset.hpp b/src/libslic3r/Geometry/VoronoiOffset.hpp similarity index 99% rename from src/libslic3r/VoronoiOffset.hpp rename to src/libslic3r/Geometry/VoronoiOffset.hpp index 17b590ed71..359fe010c8 100644 --- a/src/libslic3r/VoronoiOffset.hpp +++ b/src/libslic3r/Geometry/VoronoiOffset.hpp @@ -3,9 +3,9 @@ #ifndef slic3r_VoronoiOffset_hpp_ #define slic3r_VoronoiOffset_hpp_ -#include "libslic3r.h" +#include "../libslic3r.h" -#include "Geometry.hpp" +#include "Voronoi.hpp" namespace Slic3r { diff --git a/src/libslic3r/VoronoiVisualUtils.hpp b/src/libslic3r/Geometry/VoronoiVisualUtils.hpp similarity index 100% rename from src/libslic3r/VoronoiVisualUtils.hpp rename to src/libslic3r/Geometry/VoronoiVisualUtils.hpp diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 3220a1e022..900073d3a4 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -3,7 +3,7 @@ #include "EdgeGrid.hpp" #include "Layer.hpp" #include "Print.hpp" -#include "VoronoiVisualUtils.hpp" +#include "Geometry/VoronoiVisualUtils.hpp" #include "MutablePolygon.hpp" #include "format.hpp" diff --git a/tests/libslic3r/test_voronoi.cpp b/tests/libslic3r/test_voronoi.cpp index c78849c01e..db12e2fec1 100644 --- a/tests/libslic3r/test_voronoi.cpp +++ b/tests/libslic3r/test_voronoi.cpp @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include #include From e87f90af9f1c0142e84c6adcedcdd8c20e2f0265 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 27 Oct 2021 16:04:58 +0200 Subject: [PATCH 025/130] Fixed typo in CMake --- src/libslic3r/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index b5e576d724..4ffde3d5bf 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -116,7 +116,7 @@ add_library(libslic3r STATIC Geometry.hpp Geometry/Circle.cpp Geometry/Circle.hpp - Geometry/MedialAxis.Cpp + Geometry/MedialAxis.cpp Geometry/MedialAxis.hpp Geometry/Voronoi.hpp Geometry/VoronoiOffset.cpp From ad2dfe345dc027a36babea2a1ff5ae694da1e32a Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 27 Oct 2021 16:07:23 +0200 Subject: [PATCH 026/130] Fixed typo in an unused template code, where MSVC does not complain, but GCC does. --- src/libslic3r/Geometry/Circle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index b2e38fbf18..9b2e2b1ac8 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -71,7 +71,7 @@ struct CircleSq { bool contains_with_eps(const Vector &p, const Scalar relative_epsilon2 = Scalar((1 + 1e-14) * (1 + 1e-14))) const { Scalar r2 = this->radius2 * relative_epsilon2; return (p - this->center).squaredNorm() < r2; } - static CircleSq make_invalid() { return Circle { { 0, 0 }, -1 }; } + static CircleSq make_invalid() { return CircleSq { { 0, 0 }, -1 }; } }; // 2D circle defined by its center and radius From bc1737c0da20a1770b0c8f83b092fd57faf96502 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 27 Oct 2021 16:16:49 +0200 Subject: [PATCH 027/130] Yet another bugfix for gcc where MSVC was happy with non-conformant code --- src/libslic3r/Geometry/Circle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index 9b2e2b1ac8..07a3f268d7 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -170,4 +170,4 @@ int ray_circle_intersections(T r, T a, T b, T c, std::pair Date: Wed, 27 Oct 2021 17:36:47 +0200 Subject: [PATCH 028/130] Fixing compilation on GCC --- src/libslic3r/Geometry/Circle.hpp | 12 ++++++------ src/libslic3r/Geometry/MedialAxis.cpp | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index 07a3f268d7..b2c27e636f 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -104,18 +104,18 @@ CircleSq smallest_enclosing_circle2_welzl(const Points &points) { using Scalar = typename Vector::Scalar; - const auto &p0 = points[0].cast(); - auto circle = CircleSq(p0, points[1].cast()); + const auto &p0 = points[0].template cast(); + auto circle = CircleSq(p0, points[1].template cast()); for (size_t i = 2; i < points.size(); ++ i) - if (const Vector &p = points[i].cast(); ! circle.contains_with_eps(p)) { + if (const Vector &p = points[i].template cast(); ! circle.contains_with_eps(p)) { // p is the first point on the smallest circle enclosing points[0..i] auto c = CircleSq(p0, p); for (size_t j = 1; j < i; ++ j) - if (const Vector &q = points[j].cast(); ! c.contains_with_eps(q)) { + if (const Vector &q = points[j].template cast(); ! c.contains_with_eps(q)) { // q is the second point on the smallest circle enclosing points[0..i] auto c2 = CircleSq(p, q); - for (int k = 0; k < j; ++ k) - if (const Vector &r = points[k].cast(); ! c2.contains_with_eps(r)) { + for (size_t k = 0; k < j; ++ k) + if (const Vector &r = points[k].template cast(); ! c2.contains_with_eps(r)) { if (Vector center; circle_center(p, q, r, center)) { c2.center = center; c2.radius2 = (center - p).squaredNorm(); diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp index 60af8fa475..f4ac6d80fd 100644 --- a/src/libslic3r/Geometry/MedialAxis.cpp +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -385,8 +385,8 @@ void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi template inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) { - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); } template From b6c4e94d815dcb772be265134bf1e57e7beef6bd Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 28 Oct 2021 15:07:29 +0200 Subject: [PATCH 029/130] Fixing projection of bottom surfaces in MM segmentation and for support blockers / enforcers. All slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters. Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh(). Before this commit, slice_mesh_slabs() projected bottom facing faces upwards to its coplanar slicing plane, which is different from how slice_mesh() or slice_mesh_ex() work, leading to ignored support enforcer / blocker strokes. --- src/libslic3r/PrintObject.cpp | 1 + src/libslic3r/SupportMaterial.cpp | 41 +++++++++++---------- src/libslic3r/TriangleMeshSlicer.cpp | 55 +++++++++++++++++++--------- src/libslic3r/TriangleMeshSlicer.hpp | 11 ++++++ 4 files changed, 71 insertions(+), 37 deletions(-) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index cd973ac9de..eee0c2abab 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2284,6 +2284,7 @@ void PrintObject::project_and_append_custom_facets( seam, out); else { std::vector projected; + // Support blockers or enforcers. Project downward facing painted areas upwards to their respective slicing plane. slice_mesh_slabs(custom_facets, zs_from_layers(this->layers()), this->trafo_centered() * mv->get_matrix(), nullptr, &projected, [](){}); // Merge these projections with the output, layer by layer. assert(! projected.empty()); diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 9e1eb3e75e..ef23b0871a 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -1645,26 +1645,29 @@ static inline std::tuple detect_overhangs( polygons_append(contact_polygons, diff_polygons); } // for each layer.region - if (has_enforcer) { - // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. -#ifdef SLIC3R_DEBUG - ExPolygons enforcers_united = union_ex(annotations.enforcers_layers[layer_id]); -#endif // SLIC3R_DEBUG - enforcer_polygons = diff(intersection(layer.lslices, annotations.enforcers_layers[layer_id]), - // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. - expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); -#ifdef SLIC3R_DEBUG - SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), - { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, - { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, - { enforcers_united, { "enforcers", "blue", 0.5f } }, - { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); -#endif /* SLIC3R_DEBUG */ - polygons_append(overhang_polygons, enforcer_polygons); - slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); - polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + if (has_enforcer) + if (const Polygons &enforcer_polygons_src = annotations.enforcers_layers[layer_id]; ! enforcer_polygons_src.empty()) { + // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. + #ifdef SLIC3R_DEBUG + ExPolygons enforcers_united = union_ex(enforcer_polygons_src); + #endif // SLIC3R_DEBUG + enforcer_polygons = diff(intersection(layer.lslices, enforcer_polygons_src), + // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. + expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); + #ifdef SLIC3R_DEBUG + SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), + { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, + { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, + { enforcers_united, { "enforcers", "blue", 0.5f } }, + { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); + #endif /* SLIC3R_DEBUG */ + if (! enforcer_polygons.empty()) { + polygons_append(overhang_polygons, enforcer_polygons); + slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); + polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + } + } } - } return std::make_tuple(std::move(overhang_polygons), std::move(contact_polygons), std::move(enforcer_polygons), no_interface_offset); } diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index e61128c64f..38db180434 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -458,23 +458,33 @@ void slice_facet_with_slabs( // Slicing a horizontal triangle with a slicing plane. The triangle has to be upwards facing for ProjectionFromTop // and downwards facing for ! ProjectionFromTop. assert(min_layer != max_layer); - size_t line_id = min_layer - zs.begin(); - for (int iedge = 0; iedge < 3; ++ iedge) - if (facet_neighbors(iedge) == -1) { - int i = iedge; - int j = next_idx_modulo(i, 3); - assert(vertices[i].z() == zs[line_id]); - assert(vertices[j].z() == zs[line_id]); - IntersectionLine il { - { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, - indices(i), indices(j), -1, -1, - ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top - }; - // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. - // if (! ProjectionFromTop) il.reverse(); - boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); - lines.at_slice[line_id].emplace_back(il); - } + // Slicing plane with which the triangle is coplanar. + size_t slice_id = min_layer - zs.begin(); +#if 0 + // Project the coplanar bottom facing triangles to their slicing plane for both top and bottom facing surfaces. + // This behavior is different from slice_mesh() / slice_mesh_ex(), which do not slice bottom facing faces exactly on slicing plane. + size_t line_id = slice_id; +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. + if (size_t line_id = ProjectionFromTop ? slice_id : slice_id + 1; ProjectionFromTop || line_id < lines.at_slice.size()) +#endif + for (int iedge = 0; iedge < 3; ++ iedge) + if (facet_neighbors(iedge) == -1) { + int i = iedge; + int j = next_idx_modulo(i, 3); + assert(vertices[i].z() == zs[slice_id]); + assert(vertices[j].z() == zs[slice_id]); + IntersectionLine il { + { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, + indices(i), indices(j), -1, -1, + ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top + }; + // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. + // if (! ProjectionFromTop) il.reverse(); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); + lines.at_slice[line_id].emplace_back(il); + } } else { // Triangle is completely between two slicing planes, the triangle may or may not be horizontal, which // does not matter for the processing of such a triangle. @@ -539,6 +549,7 @@ void slice_facet_with_slabs( assert(il.b_id == indices(next_idx_modulo(edge_id, 3))); } else { // The edge is oriented CW along the face perimeter. + assert(type == FacetSliceType::Slicing); assert(il.edge_type == IntersectionLine::FacetEdgeType::Top); edge_id = il.b_id == indices(0) ? 0 : il.b_id == indices(1) ? 1 : 2; assert(il.b_id == indices(edge_id)); @@ -555,8 +566,11 @@ void slice_facet_with_slabs( int num_on_plane = (mesh_vertices[neighbor(0)].z() == z) + (mesh_vertices[neighbor(1)].z() == z) + (mesh_vertices[neighbor(2)].z() == z); assert(num_on_plane == 2 || num_on_plane == 3); #endif // NDEBUG +#if 0 if (mesh_vertices[neighbor(0)].z() == z && mesh_vertices[neighbor(1)].z() == z && mesh_vertices[neighbor(2)].z() == z) { // The neighbor triangle is horizontal. + // Assign the horizontal projections to slicing planes differently from the usual triangle mesh slicing: + // Slicing plane slices top surfaces when projecting from top, it slices bottom surfaces when projecting from bottom. // Is the corner convex or concave? if (il.edge_type == (ProjectionFromTop ? IntersectionLine::FacetEdgeType::Top : IntersectionLine::FacetEdgeType::Bottom)) { // Convex corner. Add this edge to both slabs, the edge is a boundary edge of both the projection patch below and @@ -567,7 +581,12 @@ void slice_facet_with_slabs( // Concave corner. Ignore this edge, it is internal to the projection patch. type = FacetSliceType::Cutting; } - } else if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { + } else +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. +#endif + if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { // Indicate that the edge belongs to both the slab below and above the plane. assert(type == FacetSliceType::Slicing); il.edge_type = IntersectionLine::FacetEdgeType::TopBottom; diff --git a/src/libslic3r/TriangleMeshSlicer.hpp b/src/libslic3r/TriangleMeshSlicer.hpp index 5e08b58e77..fbe7244332 100644 --- a/src/libslic3r/TriangleMeshSlicer.hpp +++ b/src/libslic3r/TriangleMeshSlicer.hpp @@ -46,6 +46,17 @@ struct MeshSlicingParamsEx : public MeshSlicingParams double resolution { 0 }; }; +// All the following slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters. +// Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by +// slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh(). +// +// If a slicing plane slices a horizontal face of a mesh exactly, +// an upward facing horizontal face is is considered on slicing plane, +// while a downward facing horizontal face is considered not on slicing plane. +// +// slice_mesh_slabs() thus projects an upward facing horizontal slice to the slicing plane, +// while slice_mesh_slabs() projects a downward facing horizontal slice to the slicing plane above if it exists. + std::vector slice_mesh( const indexed_triangle_set &mesh, const std::vector &zs, From 23ab9fb1810789cbb89e502855896254ae97733f Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 29 Oct 2021 08:46:29 +0200 Subject: [PATCH 030/130] MSW DarkMode: Set mode colors for "Change volume type" dialog. --- src/slic3r/GUI/GUI_App.cpp | 2 +- src/slic3r/GUI/GUI_App.hpp | 1 + src/slic3r/GUI/GUI_ObjectList.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 787382c239..f52dd3d58f 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1577,7 +1577,7 @@ static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguage } #endif -static int GetSingleChoiceIndex(const wxString& message, +int GUI_App::GetSingleChoiceIndex(const wxString& message, const wxString& caption, const wxArrayString& choices, int initialSelection) diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index ad42803f6b..cbabd16e7d 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -326,6 +326,7 @@ public: bool is_gl_version_greater_or_equal_to(unsigned int major, unsigned int minor) const { return m_opengl_mgr.get_gl_info().is_version_greater_or_equal_to(major, minor); } bool is_glsl_version_greater_or_equal_to(unsigned int major, unsigned int minor) const { return m_opengl_mgr.get_gl_info().is_glsl_version_greater_or_equal_to(major, minor); } + int GetSingleChoiceIndex(const wxString& message, const wxString& caption, const wxArrayString& choices, int initialSelection); #ifdef __WXMSW__ void associate_3mf_files(); diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 43ebd23f2b..8a24bee2eb 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -3783,7 +3783,7 @@ void ObjectList::change_part_type() } const wxString names[] = { _L("Part"), _L("Negative Volume"), _L("Modifier"), _L("Support Blocker"), _L("Support Enforcer") }; - auto new_type = ModelVolumeType(wxGetSingleChoiceIndex(_L("Type:"), _L("Select type of part"), wxArrayString(5, names), int(type))); + auto new_type = ModelVolumeType(wxGetApp().GetSingleChoiceIndex(_L("Type:"), _L("Select type of part"), wxArrayString(5, names), int(type))); if (new_type == type || new_type == ModelVolumeType::INVALID) return; From 0f145920d9c919f8c53c3ecaf85208efced9d16b Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 29 Oct 2021 10:45:23 +0200 Subject: [PATCH 031/130] Fixed conditional G-code int(...), which did not accept an expression, just a variable, constant or an expression enclosed in double braces (()) Mentioned for example in #3472 --- src/libslic3r/PlaceholderParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 6f2b7f3eac..c4702aef26 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1207,7 +1207,7 @@ namespace client [ px::bind(&expr::max, _val, _2) ] | (kw["random"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > ')') [ px::bind(&MyContext::random, _r1, _val, _2) ] - | (kw["int"] > '(' > unary_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] | (strict_double > iter_pos) [ px::bind(&FactorActions::double_, _1, _2, _val) ] | (int_ > iter_pos) [ px::bind(&FactorActions::int_, _1, _2, _val) ] | (kw[bool_] > iter_pos) [ px::bind(&FactorActions::bool_, _1, _2, _val) ] From 3216448bbc67d76da197591f349e81ab9f65113e Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 29 Oct 2021 13:36:26 +0200 Subject: [PATCH 032/130] PlaceholderParser: implemented round(), digits() and zdigits() macros. round() rounds to an integer. This is a popular request, for example #3472 digits(value, num_digits, num_decimals) rounds to num_digits and num_decimals, left filled with spaces. digits(value, num_digits) the same as digits(value, num_digits, 0) Neither decimal separator nor any decimals after decimal separator are emitted. zdigits(...) is the same as digits(...) only left filled with zeros. If the result does not fit num_digits, the result is never trimmed. --- src/libslic3r/PlaceholderParser.cpp | 68 ++++++++++++++++++++- tests/libslic3r/test_placeholder_parser.cpp | 14 +++++ 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index c4702aef26..1aa5a883e9 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -238,6 +238,7 @@ namespace client int i() const { return data.i; } void set_i(int v) { this->reset(); this->data.i = v; this->type = TYPE_INT; } int as_i() const { return (this->type == TYPE_INT) ? this->i() : int(this->d()); } + int as_i_rounded() const { return (this->type == TYPE_INT) ? this->i() : int(std::round(this->d())); } double& d() { return data.d; } double d() const { return data.d; } void set_d(double v) { this->reset(); this->data.d = v; this->type = TYPE_DOUBLE; } @@ -319,7 +320,7 @@ namespace client expr unary_integer(const Iterator start_pos) const { switch (this->type) { - case TYPE_INT : + case TYPE_INT: return expr(this->i(), start_pos, this->it_range.end()); case TYPE_DOUBLE: return expr(static_cast(this->d()), start_pos, this->it_range.end()); @@ -331,10 +332,25 @@ namespace client return expr(); } + expr round(const Iterator start_pos) const + { + switch (this->type) { + case TYPE_INT: + return expr(this->i(), start_pos, this->it_range.end()); + case TYPE_DOUBLE: + return expr(static_cast(std::round(this->d())), start_pos, this->it_range.end()); + default: + this->throw_exception("Cannot round a non-numeric value."); + } + assert(false); + // Suppress compiler warnings. + return expr(); + } + expr unary_not(const Iterator start_pos) const { switch (this->type) { - case TYPE_BOOL : + case TYPE_BOOL: return expr(! this->b(), start_pos, this->it_range.end()); default: this->throw_exception("Cannot apply a not operator."); @@ -549,6 +565,30 @@ namespace client } } + // Store the result into param1. + // param3 is optional + template + static void digits(expr ¶m1, expr ¶m2, expr ¶m3) + { + throw_if_not_numeric(param1); + if (param2.type != TYPE_INT) + param2.throw_exception("digits: second parameter must be integer"); + bool has_decimals = param3.type != TYPE_EMPTY; + if (has_decimals && param3.type != TYPE_INT) + param3.throw_exception("digits: third parameter must be integer"); + + char buf[256]; + int ndigits = std::clamp(param2.as_i(), 0, 64); + if (has_decimals) { + // Format as double. + int decimals = std::clamp(param3.as_i(), 0, 64); + sprintf(buf, leading_zeros ? "%0*.*lf" : "%*.*lf", ndigits, decimals, param1.as_d()); + } else + // Format as int. + sprintf(buf, leading_zeros ? "%0*d" : "%*d", ndigits, param1.as_i_rounded()); + param1.set_s(buf); + } + static void regex_op(expr &lhs, boost::iterator_range &rhs, char op) { const std::string *subject = nullptr; @@ -930,6 +970,7 @@ namespace client { "additive_expression", "Expecting an expression." }, { "multiplicative_expression", "Expecting an expression." }, { "unary_expression", "Expecting an expression." }, + { "optional_parameter", "Expecting a closing brace or an optional parameter." }, { "scalar_variable_reference", "Expecting a scalar variable reference."}, { "variable_reference", "Expecting a variable reference."}, { "regular_expression", "Expecting a regular expression."} @@ -1194,6 +1235,10 @@ namespace client { out = value.unary_not(out.it_range.begin()); } static void to_int(expr &value, expr &out) { out = value.unary_integer(out.it_range.begin()); } + static void round(expr &value, expr &out) + { out = value.round(out.it_range.begin()); } + // For indicating "no optional parameter". + static void noexpr(expr &out) { out.reset(); } }; unary_expression = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( scalar_variable_reference(_r1) [ _val = _1 ] @@ -1207,7 +1252,12 @@ namespace client [ px::bind(&expr::max, _val, _2) ] | (kw["random"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > ')') [ px::bind(&MyContext::random, _r1, _val, _2) ] - | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["digits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::digits, _val, _2, _3) ] + | (kw["zdigits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::digits, _val, _2, _3) ] + | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["round"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::round, _1, _val) ] | (strict_double > iter_pos) [ px::bind(&FactorActions::double_, _1, _2, _val) ] | (int_ > iter_pos) [ px::bind(&FactorActions::int_, _1, _2, _val) ] | (kw[bool_] > iter_pos) [ px::bind(&FactorActions::bool_, _1, _2, _val) ] @@ -1216,6 +1266,12 @@ namespace client ); unary_expression.name("unary_expression"); + optional_parameter = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( + lit(')') [ px::bind(&FactorActions::noexpr, _val) ] + | (lit(',') > conditional_expression(_r1) > ')') [ _val = _1 ] + ); + optional_parameter.name("optional_parameter"); + scalar_variable_reference = variable_reference(_r1)[_a=_1] >> ( @@ -1234,6 +1290,8 @@ namespace client keywords.add ("and") + ("digits") + ("zdigits") ("if") ("int") //("inf") @@ -1244,6 +1302,7 @@ namespace client ("min") ("max") ("random") + ("round") ("not") ("or") ("true"); @@ -1266,6 +1325,7 @@ namespace client debug(additive_expression); debug(multiplicative_expression); debug(unary_expression); + debug(optional_parameter); debug(scalar_variable_reference); debug(variable_reference); debug(regular_expression); @@ -1303,6 +1363,8 @@ namespace client RuleExpression multiplicative_expression; // Number literals, functions, braced expressions, variable references, variable indexing references. RuleExpression unary_expression; + // Accepting an optional parameter. + RuleExpression optional_parameter; // Rule to capture a regular expression enclosed in //. qi::rule(), spirit_encoding::space_type> regular_expression; // Evaluate boolean expression into bool. diff --git a/tests/libslic3r/test_placeholder_parser.cpp b/tests/libslic3r/test_placeholder_parser.cpp index 59784e940d..abf7308f25 100644 --- a/tests/libslic3r/test_placeholder_parser.cpp +++ b/tests/libslic3r/test_placeholder_parser.cpp @@ -51,6 +51,20 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") { SECTION("math: max(13.4, -1238.1)") { REQUIRE(std::stod(parser.process("{max(13.4, -1238.1)}")) == Approx(13.4)); } SECTION("math: int(13.4)") { REQUIRE(parser.process("{int(13.4)}") == "13"); } SECTION("math: int(-13.4)") { REQUIRE(parser.process("{int(-13.4)}") == "-13"); } + SECTION("math: round(13.4)") { REQUIRE(parser.process("{round(13.4)}") == "13"); } + SECTION("math: round(-13.4)") { REQUIRE(parser.process("{round(-13.4)}") == "-13"); } + SECTION("math: round(13.6)") { REQUIRE(parser.process("{round(13.6)}") == "14"); } + SECTION("math: round(-13.6)") { REQUIRE(parser.process("{round(-13.6)}") == "-14"); } + SECTION("math: digits(5, 15)") { REQUIRE(parser.process("{digits(5, 15)}") == " 5"); } + SECTION("math: digits(5., 15)") { REQUIRE(parser.process("{digits(5., 15)}") == " 5"); } + SECTION("math: zdigits(5, 15)") { REQUIRE(parser.process("{zdigits(5, 15)}") == "000000000000005"); } + SECTION("math: zdigits(5., 15)") { REQUIRE(parser.process("{zdigits(5., 15)}") == "000000000000005"); } + SECTION("math: digits(5, 15, 8)") { REQUIRE(parser.process("{digits(5, 15, 8)}") == " 5.00000000"); } + SECTION("math: digits(5., 15, 8)") { REQUIRE(parser.process("{digits(5, 15, 8)}") == " 5.00000000"); } + SECTION("math: zdigits(5, 15, 8)") { REQUIRE(parser.process("{zdigits(5, 15, 8)}") == "000005.00000000"); } + SECTION("math: zdigits(5., 15, 8)") { REQUIRE(parser.process("{zdigits(5, 15, 8)}") == "000005.00000000"); } + SECTION("math: digits(13.84375892476, 15, 8)") { REQUIRE(parser.process("{digits(13.84375892476, 15, 8)}") == " 13.84375892"); } + SECTION("math: zdigits(13.84375892476, 15, 8)") { REQUIRE(parser.process("{zdigits(13.84375892476, 15, 8)}") == "000013.84375892"); } // Test the "coFloatOrPercent" and "xxx_extrusion_width" substitutions. // first_layer_extrusion_width ratio_over first_layer_heigth. From 1ddd0609821b7a952ff501e4fea60a135f2633c0 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 29 Oct 2021 14:27:36 +0200 Subject: [PATCH 033/130] New placeholder parser values for output file name template; {num_objects} - number of printable objects on the plater. {num_instances} - number of printable instances on the plater, adding up all printable instances of all objects. Implements #2735 #3339 #4607 --- src/libslic3r/PrintBase.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp index 7de74035bc..b60401e96f 100644 --- a/src/libslic3r/PrintBase.cpp +++ b/src/libslic3r/PrintBase.cpp @@ -26,14 +26,17 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str // get the first input file name std::string input_file; std::vector v_scale; + int num_objects = 0; + int num_instances = 0; for (const ModelObject *model_object : m_model.objects) { ModelInstance *printable = nullptr; for (ModelInstance *model_instance : model_object->instances) if (model_instance->is_printable()) { printable = model_instance; - break; + ++ num_instances; } if (printable) { + ++ num_objects; // CHECK_ME -> Is the following correct ? v_scale.push_back("x:" + boost::lexical_cast(printable->get_scaling_factor(X) * 100) + "% y:" + boost::lexical_cast(printable->get_scaling_factor(Y) * 100) + @@ -43,6 +46,9 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str } } + config.set_key_value("num_objects", new ConfigOptionInt(num_objects)); + config.set_key_value("num_instances", new ConfigOptionInt(num_instances)); + config.set_key_value("scale", new ConfigOptionStrings(v_scale)); if (! input_file.empty()) { // get basename with and without suffix From 5f84c504fc26c3e45f7b666caa7cd72ff4385328 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 29 Oct 2021 16:53:03 +0200 Subject: [PATCH 034/130] Support generator: Regression wrt. PrusaSlicer 2.3.3: "with sheath" now again uses the lighweight zig-zag algorithm for the sparse support columns, while PrusaSlicer 2.4.0-alpha1 to PrusaSlicer 2.4.0-beta1 used the new "stable" zig-zag algorithm for both the non-sheathed and sheathed sparse support columns creating unnecessarily thick support column perimeters. --- src/libslic3r/SupportMaterial.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index ef23b0871a..7ef289757d 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -383,7 +383,9 @@ PrintObjectSupportMaterial::PrintObjectSupportMaterial(const PrintObject *object SupportMaterialPattern support_pattern = m_object_config->support_material_pattern; m_support_params.with_sheath = m_object_config->support_material_with_sheath; - m_support_params.base_fill_pattern = support_pattern == smpHoneycomb ? ipHoneycomb : (m_support_params.support_density > 0.95 ? ipRectilinear : ipSupportBase); + m_support_params.base_fill_pattern = + support_pattern == smpHoneycomb ? ipHoneycomb : + m_support_params.support_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase; m_support_params.interface_fill_pattern = (m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase); m_support_params.contact_fill_pattern = (m_object_config->support_material_interface_pattern == smipAuto && m_slicing_params.soluble_interface) || @@ -4060,7 +4062,8 @@ void PrintObjectSupportMaterial::generate_toolpaths( // Pointer to the 1st layer interface filler. auto filler_first_layer = filler_first_layer_ptr ? filler_first_layer_ptr.get() : filler_interface.get(); // Filler for the base interface (to be used for soluble interface / non soluble base, to produce non soluble interface layer below soluble interface layer). - auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : Fill::new_from_type(m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase)); + auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : + Fill::new_from_type(m_support_params.interface_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase)); auto filler_support = std::unique_ptr(Fill::new_from_type(m_support_params.base_fill_pattern)); filler_interface->set_bounding_box(bbox_object); if (filler_first_layer_ptr) From a01ab28e4c57a3cc4276d5fe2600cef2a812b2b2 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 29 Oct 2021 21:47:47 +0200 Subject: [PATCH 035/130] Fixed encoding of gizmo entering/leaving undo redo snapshots, which was broken by adding an extra TakeSnapshot overload in 41dc265 --- src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp | 3 --- src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp | 3 --- src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp | 3 --- src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp | 2 -- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 6 ++++-- src/slic3r/GUI/Plater.cpp | 2 ++ src/slic3r/GUI/Plater.hpp | 1 + 7 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp index 4929714a2b..69966b0f29 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp @@ -18,9 +18,6 @@ protected: std::string on_get_name() const override; wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - - std::string get_gizmo_entering_text() const override { return _u8L("Entering Paint-on supports"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Paint-on supports"); } std::string get_action_snapshot_name() override { return _u8L("Paint-on supports editing"); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp index 0991527f1f..e5336869e1 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp @@ -111,9 +111,6 @@ protected: bool on_is_activable() const override; wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - - std::string get_gizmo_entering_text() const override { return _u8L("Entering Multimaterial painting"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Multimaterial painting"); } std::string get_action_snapshot_name() override { return _u8L("Multimaterial painting editing"); } size_t m_first_selected_extruder_idx = 0; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index eb09715da4..819550c89d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -230,9 +230,6 @@ protected: virtual wxString handle_snapshot_action_name(bool shift_down, Button button_down) const = 0; - virtual std::string get_gizmo_entering_text() const = 0; - virtual std::string get_gizmo_leaving_text() const = 0; - friend class ::Slic3r::GUI::GLGizmoMmuSegmentation; }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp index 408c2ec4c1..624a197bd6 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp @@ -20,8 +20,6 @@ protected: wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - std::string get_gizmo_entering_text() const override { return _u8L("Entering Seam painting"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Seam painting"); } std::string get_action_snapshot_name() override { return _u8L("Paint-on seam editing"); } private: diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 316f800368..2ff554ec88 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -1234,14 +1234,16 @@ bool GLGizmosManager::activate_gizmo(EType type) if (! m_parent.get_gizmos_manager().is_serializing() && old_gizmo->wants_enter_leave_snapshots()) Plater::TakeSnapshot snapshot(wxGetApp().plater(), - Slic3r::format(_utf8("Leaving %1%"), old_gizmo->get_name(false)), + Slic3r::format(_CTX_utf8("Leaving %1%", "undo/redo action name, placeholder " + "expands to a name of a gizmo being closed"), old_gizmo->get_name(false)), UndoRedo::SnapshotType::LeavingGizmoWithAction); } if (new_gizmo && ! m_parent.get_gizmos_manager().is_serializing() && new_gizmo->wants_enter_leave_snapshots()) Plater::TakeSnapshot snapshot(wxGetApp().plater(), - Slic3r::format(_utf8("Entering %1%"), new_gizmo->get_name(false)), + Slic3r::format(_CTX_utf8("Entering %1%", "undo/redo action name, placeholder " + "expands to a name of a gizmo being opened"), new_gizmo->get_name(false)), UndoRedo::SnapshotType::EnteringGizmo); m_current = type; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f138c0af17..ec09ac1ad2 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6860,6 +6860,8 @@ bool Plater::is_render_statistic_dialog_visible() const Plater::TakeSnapshot::TakeSnapshot(Plater *plater, const std::string &snapshot_name) : TakeSnapshot(plater, from_u8(snapshot_name)) {} +Plater::TakeSnapshot::TakeSnapshot(Plater* plater, const std::string& snapshot_name, UndoRedo::SnapshotType snapshot_type) +: TakeSnapshot(plater, from_u8(snapshot_name), snapshot_type) {} // Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu. diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 0e9d28c1a5..8bc6836354 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -394,6 +394,7 @@ public: m_plater->take_snapshot(snapshot_name); m_plater->suppress_snapshots(); } + TakeSnapshot(Plater* plater, const std::string& snapshot_name, UndoRedo::SnapshotType snapshot_type); TakeSnapshot(Plater *plater, const wxString &snapshot_name, UndoRedo::SnapshotType snapshot_type) : m_plater(plater) { m_plater->take_snapshot(snapshot_name, snapshot_type); From d78a5acba9d4c10809af0c098a9bad1f3b837f85 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Sat, 30 Oct 2021 11:18:23 +0200 Subject: [PATCH 036/130] Numerical improvements to Welzel minimum enclosing circle algorithm --- src/libslic3r/Geometry/Circle.hpp | 150 ++++++++++++++++-------------- tests/libslic3r/test_geometry.cpp | 9 +- 2 files changed, 83 insertions(+), 76 deletions(-) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index b2c27e636f..b02a887c1d 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -14,41 +14,26 @@ inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20 // https://en.wikipedia.org/wiki/Circumscribed_circle // Circumcenter coordinates, Cartesian coordinates template -bool circle_center(const Vector &a, Vector b, Vector c, Vector ¢er) +Vector circle_center(const Vector &a, const Vector &bsrc, const Vector &csrc, typename Vector::Scalar epsilon) { using Scalar = typename Vector::Scalar; - b -= a; - c -= a; - if (Scalar d = b.x() * c.y() - b.y() * c.x(); d == 0) - return false; - else { - Vector v = c.squaredNorm() * b - b.squaredNorm() * c; - center = a + Vector(- v.y(), v.x()) / (2 * d); - return true; + Vector b = bsrc - a; + Vector c = csrc - a; + Scalar lb = b.squaredNorm(); + Scalar lc = c.squaredNorm(); + if (Scalar d = b.x() * c.y() - b.y() * c.x(); std::abs(d) < epsilon) { + // The three points are collinear. Take the center of the two points + // furthest away from each other. + Scalar lbc = (csrc - bsrc).squaredNorm(); + return Scalar(0.5) * ( + lb > lc && lb > lbc ? a + bsrc : + lc > lb && lc > lbc ? a + csrc : bsrc + csrc); + } else { + Vector v = lc * b - lb * c; + return a + Vector(- v.y(), v.x()) / (2 * d); } } -/* -// Likely a bit more accurate accurate version of circle_center() by centering. -template -bool circle_center_centered(Vector a, Vector b, Vector c, Vector ¢er) -{ - auto bbox_center = 0.5 * (a.cwiseMin(b).cwiseMin(c) + a.cwiseMax(b).cwiseMax(c)); - a -= bbox_center; - b -= bbox_center; - c -= bbox_center; - auto bc = b - c; - auto ca = c - a; - auto ab = a - b; - if (d = ao.x() * bc.y() + bo.x() * ca.y() + co.x() * ab.y(); d == 0) - return false; - else { - center = bbox_center - perp(ao.squaredNorm() * bc + bo.squaredNorm() * ca + co.squaredNorm() * ab) / (2 * d); - return true; - } -} -*/ - // 2D circle defined by its center and squared radius template struct CircleSq { @@ -57,19 +42,21 @@ struct CircleSq { Vector center; Scalar radius2; + CircleSq() {} + CircleSq(const Vector ¢er, const Scalar radius2) : center(center), radius2(radius2) {} CircleSq(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius2 = (a - center).squaredNorm(); } - CircleSq(const Vector &a, const Vector &b, const Vector &c) { - if (circle_center(a, b, c, this->center)) - this->radius = (a - this->center).squaredNorm(); - else - *this = make_invalid(); + CircleSq(const Vector &a, const Vector &b, const Vector &c, Scalar epsilon) { + this->center = circle_center(a, b, c, epsilon); + this->radius2 = (a - this->center).squaredNorm(); } bool invalid() const { return this->radius2 < 0; } bool valid() const { return ! this->invalid(); } bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius2; } - bool contains_with_eps(const Vector &p, const Scalar relative_epsilon2 = Scalar((1 + 1e-14) * (1 + 1e-14))) const - { Scalar r2 = this->radius2 * relative_epsilon2; return (p - this->center).squaredNorm() < r2; } + bool contains(const Vector &p, const Scalar epsilon2) const { return (p - this->center).squaredNorm() < this->radius2 + epsilon2; } + + CircleSq inflated(Scalar epsilon) const + { assert(this->radius2 >= 0); Scalar r = sqrt(this->radius2) + epsilon; return { this->center, r * r }; } static CircleSq make_invalid() { return CircleSq { { 0, 0 }, -1 }; } }; @@ -82,58 +69,77 @@ struct Circle { Vector center; Scalar radius; + Circle() {} + Circle(const Vector ¢er, const Scalar radius) : center(center), radius(radius) {} Circle(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius = (a - center).norm(); } - Circle(const Vector &a, const Vector &b, const Vector &c) { - this->center = circle_center(a, b, c); - this->radius = (a - this->center).norm(); - } + Circle(const Vector &a, const Vector &b, const Vector &c, const Scalar epsilon) { *this = CircleSq(a, b, c, epsilon); } + + // Conversion from CircleSq template - explicit Circle(const CircleSq &c) : center(c.center), radius(sqrt(c.radius2)) {} + explicit Circle(const CircleSq &c) : center(c.center), radius(c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2)) {} + template + Circle operator=(const CircleSq &c) { this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2) } bool invalid() const { return this->radius < 0; } bool valid() const { return ! this->invalid(); } - bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius * this->radius; } - bool contains_with_eps(const Vector &p, const Scalar relative_epsilon = 1 + 1e-14) const { Scalar r = this->radius * relative_epsilon; return (p - this->center).squaredNorm() < r * r; } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() <= this->radius * this->radius; } + bool contains(const Vector &p, const Scalar epsilon) const + { Scalar re = this->radius + epsilon; return (p - this->center).squaredNorm() < re * re; } + + Circle inflated(Scalar epsilon) const { assert(this->radius >= 0); return { this->center, this->radius + epsilon }; } static Circle make_invalid() { return Circle { { 0, 0 }, -1 }; } }; -// Randomized algorithm by Emo Welzl +using Circlef = Circle; +using Circled = Circle; +using CircleSqf = CircleSq; +using CircleSqd = CircleSq; + +// Randomized algorithm by Emo Welzl, working with squared radii for efficiency. The returned circle radius is inflated by epsilon. template -CircleSq smallest_enclosing_circle2_welzl(const Points &points) +CircleSq smallest_enclosing_circle2_welzl(const Points &points, const typename Vector::Scalar epsilon) { using Scalar = typename Vector::Scalar; - - const auto &p0 = points[0].template cast(); - auto circle = CircleSq(p0, points[1].template cast()); - for (size_t i = 2; i < points.size(); ++ i) - if (const Vector &p = points[i].template cast(); ! circle.contains_with_eps(p)) { - // p is the first point on the smallest circle enclosing points[0..i] - auto c = CircleSq(p0, p); - for (size_t j = 1; j < i; ++ j) - if (const Vector &q = points[j].template cast(); ! c.contains_with_eps(q)) { - // q is the second point on the smallest circle enclosing points[0..i] - auto c2 = CircleSq(p, q); - for (size_t k = 0; k < j; ++ k) - if (const Vector &r = points[k].template cast(); ! c2.contains_with_eps(r)) { - if (Vector center; circle_center(p, q, r, center)) { - c2.center = center; - c2.radius2 = (center - p).squaredNorm(); - } - } - if (c2.radius2 > 0) - c = c2; - } - if (c.radius2 > 0) - circle = c; - } + CircleSq circle; + + if (! points.empty()) { + const auto &p0 = points[0].template cast(); + if (points.size() == 1) { + circle.center = p0; + circle.radius2 = epsilon * epsilon; + } else { + circle = CircleSq(p0, points[1].template cast()).inflated(epsilon); + for (size_t i = 2; i < points.size(); ++ i) + if (const Vector &p = points[i].template cast(); ! circle.contains(p)) { + // p is the first point on the smallest circle enclosing points[0..i] + circle = CircleSq(p0, p).inflated(epsilon); + for (size_t j = 1; j < i; ++ j) + if (const Vector &q = points[j].template cast(); ! circle.contains(q)) { + // q is the second point on the smallest circle enclosing points[0..i] + circle = CircleSq(p, q).inflated(epsilon); + for (size_t k = 0; k < j; ++ k) + if (const Vector &r = points[k].template cast(); ! circle.contains(r)) + circle = CircleSq(p, q, r, epsilon).inflated(epsilon); + } + } + } + } + return circle; } +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by epsilon. template -Circle smallest_enclosing_circle_welzl(const Points &points) +Circle smallest_enclosing_circle_welzl(const Points &points, const typename Vector::Scalar epsilon) { - return Circle(smallest_enclosing_circle2_welzl(points)); + return Circle(smallest_enclosing_circle2_welzl(points, epsilon)); +} + +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by SCALED_EPSILON. +inline Circled smallest_enclosing_circle_welzl(const Points &points) +{ + return smallest_enclosing_circle_welzl(points, SCALED_EPSILON); } // Ugly named variant, that accepts the squared line diff --git a/tests/libslic3r/test_geometry.cpp b/tests/libslic3r/test_geometry.cpp index 6e13e518c6..6bec7af684 100644 --- a/tests/libslic3r/test_geometry.cpp +++ b/tests/libslic3r/test_geometry.cpp @@ -328,11 +328,12 @@ TEST_CASE("smallest_enclosing_circle_welzl", "[Geometry]") { { 65874456, 2987546 }, { 98234524, 657654873 }, { 786243598, 287934765 }, { 824356, 734265 }, { 82576449, 7864534 }, { 7826345, 3984765 } }; - const auto c = Slic3r::Geometry::smallest_enclosing_circle_welzl(pts); - bool all_inside = std::all_of(pts.begin(), pts.end(), [c](const Point &pt){ return c.contains_with_eps(pt.cast()); }); + const auto c = Slic3r::Geometry::smallest_enclosing_circle_welzl(pts); + // The radius returned is inflated by SCALED_EPSILON, thus all points should be inside. + bool all_inside = std::all_of(pts.begin(), pts.end(), [c](const Point &pt){ return c.contains(pt.cast()); }); auto c2(c); - c2.radius -= 1.; - auto num_on_boundary = std::count_if(pts.begin(), pts.end(), [c2](const Point& pt) { return ! c2.contains_with_eps(pt.cast()); }); + c2.radius -= SCALED_EPSILON * 2.1; + auto num_on_boundary = std::count_if(pts.begin(), pts.end(), [c2](const Point& pt) { return ! c2.contains(pt.cast(), SCALED_EPSILON); }); REQUIRE(all_inside); REQUIRE(num_on_boundary == 3); From a94f1b332ac503d5d2c5405e5bc3a637a427b217 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Sat, 30 Oct 2021 14:00:23 +0200 Subject: [PATCH 037/130] Fixing the GCC/clang builds. MSVC is again non-conformant. --- src/libslic3r/PlaceholderParser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 1aa5a883e9..f763c8bb6c 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1253,9 +1253,9 @@ namespace client | (kw["random"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > ')') [ px::bind(&MyContext::random, _r1, _val, _2) ] | (kw["digits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) - [ px::bind(&expr::digits, _val, _2, _3) ] + [ px::bind(&expr::template digits, _val, _2, _3) ] | (kw["zdigits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) - [ px::bind(&expr::digits, _val, _2, _3) ] + [ px::bind(&expr::template digits, _val, _2, _3) ] | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] | (kw["round"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::round, _1, _val) ] | (strict_double > iter_pos) [ px::bind(&FactorActions::double_, _1, _2, _val) ] From 0074df9c74dd246c33ae5db2688583375c9d318d Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Mon, 1 Nov 2021 08:02:20 +0100 Subject: [PATCH 038/130] Fix build on linux/clang 13 (#7203) * Include missing headers * Disambiguate nested template function for clang 13 --- src/libslic3r/Geometry/Circle.cpp | 3 +++ src/libslic3r/Geometry/Circle.hpp | 4 ++++ src/libslic3r/Geometry/MedialAxis.cpp | 2 ++ src/libslic3r/Geometry/MedialAxis.hpp | 1 + 4 files changed, 10 insertions(+) diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp index 3d7fc02232..bfa1602f46 100644 --- a/src/libslic3r/Geometry/Circle.cpp +++ b/src/libslic3r/Geometry/Circle.cpp @@ -2,6 +2,9 @@ #include "../Polygon.hpp" +#include +#include + namespace Slic3r { namespace Geometry { Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index b02a887c1d..b27774f574 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -1,6 +1,10 @@ #ifndef slic3r_Geometry_Circle_hpp_ #define slic3r_Geometry_Circle_hpp_ +#include "../Point.hpp" + +#include + namespace Slic3r { namespace Geometry { /// Find the center of the circle corresponding to the vector of Points as an arc. diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp index f4ac6d80fd..ce38a6c705 100644 --- a/src/libslic3r/Geometry/MedialAxis.cpp +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -1,5 +1,7 @@ #include "MedialAxis.hpp" +#include "clipper.hpp" + #ifdef SLIC3R_DEBUG namespace boost { namespace polygon { diff --git a/src/libslic3r/Geometry/MedialAxis.hpp b/src/libslic3r/Geometry/MedialAxis.hpp index 4189b5d4e8..cfbb5f0805 100644 --- a/src/libslic3r/Geometry/MedialAxis.hpp +++ b/src/libslic3r/Geometry/MedialAxis.hpp @@ -2,6 +2,7 @@ #define slic3r_Geometry_MedialAxis_hpp_ #include "Voronoi.hpp" +#include "../ExPolygon.hpp" namespace Slic3r { namespace Geometry { From 4a2e991ffe81d9c95814046dc1889eda91f85a8b Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 1 Nov 2021 08:46:37 +0100 Subject: [PATCH 039/130] Fixed build on non-Windows OSs --- src/libslic3r/Geometry/Circle.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp index b27774f574..a8a993f8be 100644 --- a/src/libslic3r/Geometry/Circle.hpp +++ b/src/libslic3r/Geometry/Circle.hpp @@ -82,7 +82,7 @@ struct Circle { template explicit Circle(const CircleSq &c) : center(c.center), radius(c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2)) {} template - Circle operator=(const CircleSq &c) { this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2) } + Circle operator=(const CircleSq& c) { this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2); } bool invalid() const { return this->radius < 0; } bool valid() const { return ! this->invalid(); } From 2682915a5d7f31e8bdb83e3d563d8b339dc88bb3 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 1 Nov 2021 11:08:02 +0100 Subject: [PATCH 040/130] #7211 - Fixed reset direction of view clipping not aligning cut surface correctly when viewed from Left or Right --- src/slic3r/GUI/MeshUtils.cpp | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/slic3r/GUI/MeshUtils.cpp b/src/slic3r/GUI/MeshUtils.cpp index 0f72d0f781..0c1e91c569 100644 --- a/src/slic3r/GUI/MeshUtils.cpp +++ b/src/slic3r/GUI/MeshUtils.cpp @@ -82,10 +82,10 @@ void MeshClipper::recalculate_triangles() const Transform3f& instance_matrix_no_translation_no_scaling = m_trafo.get_matrix(true,false,true).cast(); const Vec3f& scaling = m_trafo.get_scaling_factor().cast(); // Calculate clipping plane normal in mesh coordinates. - Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * m_plane.get_normal().cast(); - Vec3d up (up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); + const Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * m_plane.get_normal().cast(); + const Vec3d up (up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); // Calculate distance from mesh origin to the clipping plane (in mesh coordinates). - float height_mesh = m_plane.distance(m_trafo.get_offset()) * (up_noscale.norm()/up.norm()); + const float height_mesh = m_plane.distance(m_trafo.get_offset()) * (up_noscale.norm()/up.norm()); // Now do the cutting MeshSlicingParams slicing_params; @@ -94,7 +94,7 @@ void MeshClipper::recalculate_triangles() ExPolygons expolys = union_ex(slice_mesh(m_mesh->its, height_mesh, slicing_params)); if (m_negative_mesh && !m_negative_mesh->empty()) { - ExPolygons neg_expolys = union_ex(slice_mesh(m_negative_mesh->its, height_mesh, slicing_params)); + const ExPolygons neg_expolys = union_ex(slice_mesh(m_negative_mesh->its, height_mesh, slicing_params)); expolys = diff_ex(expolys, neg_expolys); } @@ -110,13 +110,13 @@ void MeshClipper::recalculate_triangles() // Now remove whatever ended up below the limiting plane (e.g. sinking objects). // First transform the limiting plane from world to mesh coords. // Note that inverse of tr transforms the plane from world to horizontal. - Vec3d normal_old = m_limiting_plane.get_normal().normalized(); - Vec3d normal_new = (tr.matrix().block<3,3>(0,0).transpose() * normal_old).normalized(); + const Vec3d normal_old = m_limiting_plane.get_normal().normalized(); + const Vec3d normal_new = (tr.matrix().block<3,3>(0,0).transpose() * normal_old).normalized(); // normal_new should now be the plane normal in mesh coords. To find the offset, // transform a point and set offset so it belongs to the transformed plane. Vec3d pt = Vec3d::Zero(); - double plane_offset = m_limiting_plane.get_data()[3]; + const double plane_offset = m_limiting_plane.get_data()[3]; if (std::abs(normal_old.z()) > 0.5) // normal is normalized, at least one of the coords if larger than sqrt(3)/3 = 0.57 pt.z() = - plane_offset / normal_old.z(); else if (std::abs(normal_old.y()) > 0.5) @@ -124,27 +124,25 @@ void MeshClipper::recalculate_triangles() else pt.x() = - plane_offset / normal_old.x(); pt = tr.inverse() * pt; - double offset = -(normal_new.dot(pt)); + const double offset = -(normal_new.dot(pt)); if (std::abs(normal_old.dot(m_plane.get_normal().normalized())) > 0.99) { // The cuts are parallel, show all or nothing. - if (offset < height_mesh) + if (normal_old.dot(m_plane.get_normal().normalized()) < 0.0 && offset < height_mesh) expolys.clear(); } else { // The cut is a horizontal plane defined by z=height_mesh. // ax+by+e=0 is the line of intersection with the limiting plane. // Normalized so a^2 + b^2 = 1. - double len = std::hypot(normal_new.x(), normal_new.y()); + const double len = std::hypot(normal_new.x(), normal_new.y()); if (len == 0.) return; - double a = normal_new.x() / len; - double b = normal_new.y() / len; - double e = (normal_new.z() * height_mesh + offset) / len; - if (b == 0.) - return; + const double a = normal_new.x() / len; + const double b = normal_new.y() / len; + const double e = (normal_new.z() * height_mesh + offset) / len; // We need a half-plane to limit the cut. Get angle of the intersecting line. - double angle = std::atan(-a/b); + double angle = (b != 0.0) ? std::atan(-a / b) : ((a < 0.0) ? -0.5 * M_PI : 0.5 * M_PI); if (b > 0) // select correct half-plane angle += M_PI; @@ -152,7 +150,7 @@ void MeshClipper::recalculate_triangles() // it so it lies on our line. This will be the figure to subtract // from the cut. The coordinates must not overflow after the transform, // make the rectangle a bit smaller. - coord_t size = (std::numeric_limits::max() - scale_(std::max(std::abs(e*a), std::abs(e*b)))) / 4; + const coord_t size = (std::numeric_limits::max() - scale_(std::max(std::abs(e*a), std::abs(e*b)))) / 4; Polygons ep {Polygon({Point(-size, 0), Point(size, 0), Point(size, 2*size), Point(-size, 2*size)})}; ep.front().rotate(angle); ep.front().translate(scale_(-e * a), scale_(-e * b)); @@ -169,7 +167,7 @@ void MeshClipper::recalculate_triangles() m_vertex_array.push_geometry(tr * Vec3d((*(it+0))(0), (*(it+0))(1), height_mesh), up); m_vertex_array.push_geometry(tr * Vec3d((*(it+1))(0), (*(it+1))(1), height_mesh), up); m_vertex_array.push_geometry(tr * Vec3d((*(it+2))(0), (*(it+2))(1), height_mesh), up); - size_t idx = it - m_triangles2d.cbegin(); + const size_t idx = it - m_triangles2d.cbegin(); m_vertex_array.push_triangle(idx, idx+1, idx+2); } m_vertex_array.finalize_geometry(true); From 3124892fae2d7107f36adac17a3c92107994510e Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 1 Nov 2021 12:52:45 +0100 Subject: [PATCH 041/130] Fixed a tripping assert --- src/slic3r/GUI/GUI_App.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index f52dd3d58f..49fbb8a313 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -673,8 +673,7 @@ void GUI_App::post_init() // to popup a modal dialog on start without screwing combo boxes. // This is ugly but I honestly found no better way to do it. // Neither wxShowEvent nor wxWindowCreateEvent work reliably. - assert(this->preset_updater); // FIXME Following condition is probably not neccessary. - if (this->preset_updater) { + if (this->preset_updater) { // G-Code Viewer does not initialize preset_updater. this->check_updates(false); CallAfter([this] { bool cw_showed = this->config_wizard_startup(); From 0b6fc0817f2dd891fb1296c821d06740b59baa4b Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 27 Oct 2021 11:54:12 +0200 Subject: [PATCH 042/130] SendSystemInfo: Reworked internet connection check, now we only do the check on Windows, see the comments in the code for details. --- src/slic3r/GUI/SendSystemInfoDialog.cpp | 47 +++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/SendSystemInfoDialog.cpp b/src/slic3r/GUI/SendSystemInfoDialog.cpp index f92060bfc8..da6e57f888 100644 --- a/src/slic3r/GUI/SendSystemInfoDialog.cpp +++ b/src/slic3r/GUI/SendSystemInfoDialog.cpp @@ -35,6 +35,8 @@ #ifdef _WIN32 #include + #include + #include #include #pragma comment(lib, "iphlpapi.lib") #elif __APPLE__ @@ -132,6 +134,28 @@ public: +#ifdef _WIN32 +static bool check_internet_connection_win() +{ + bool internet = true; // return true if COM object creation fails. + + if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED) == S_OK) { + { + CComPtr pNLM; + if (pNLM.CoCreateInstance(CLSID_NetworkListManager) == S_OK) { + NLM_CONNECTIVITY status; + pNLM->GetConnectivity(&status); + internet = (status & (NLM_CONNECTIVITY_IPV4_INTERNET | NLM_CONNECTIVITY_IPV6_INTERNET)); + } + } + CoUninitialize(); + } + + return internet; +} +#endif + + // Last version where the info was sent / dialog dismissed is saved in appconfig. // Only show the dialog when this info is not found (e.g. fresh install) or when // current version is newer. Only major and minor versions are compared. @@ -157,16 +181,19 @@ static bool should_dialog_be_shown() if (! new_version) return false; - // We'll misuse the version check to check internet connection here. - bool is_internet = false; - Http::get(wxGetApp().app_config->version_check_url()) - .size_limit(SLIC3R_VERSION_BODY_MAX) - .timeout_max(2) - .on_complete([&](std::string, unsigned) { - is_internet = true; - }) - .perform_sync(); - return is_internet; + // We might want to check that the internet connection is ready so we don't open the dialog + // if it cannot really send any data. Using a dummy HTTP GET request led to + // https://forum.prusaprinters.org/forum/prusaslicer/prusaslicer-2-4-0-beta1-is-out/#post-518488. + // It might also trigger security softwares, which would look bad and would lead to questions + // about what PS is doing. We better use some less intrusive way of checking the connection. + + // As of now, this is only implemented on Win. The other platforms do not check beforehand. + +#ifdef _WIN32 + return check_internet_connection_win(); +#else + return true; +#endif } From ca677fa1dadf0bcd50996a6337f87c88324edc17 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 26 Oct 2021 14:00:07 +0200 Subject: [PATCH 043/130] SLA supports gizmo: selection rectangle now selects partially obscured points as well --- src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index ccc67b6305..f2faa29d0c 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -401,11 +401,20 @@ bool GLGizmoSlaSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous for (size_t idx : points_idxs) points_inside.push_back(points[idx].cast()); - // Only select/deselect points that are actually visible + // Only select/deselect points that are actually visible. We want to check not only + // the point itself, but also the center of base of its cone, so the points don't hide + // under every miniature irregularity on the model. Remember the actual number and + // append the cone bases. + size_t orig_pts_num = points_inside.size(); + for (size_t idx : points_idxs) + points_inside.emplace_back((trafo.get_matrix().cast() * (m_editing_cache[idx].support_point.pos + m_editing_cache[idx].normal)).cast()); + for (size_t idx : m_c->raycaster()->raycaster()->get_unobscured_idxs( trafo, wxGetApp().plater()->get_camera(), points_inside, m_c->object_clipper()->get_clipping_plane())) { + if (idx >= orig_pts_num) // this is a cone-base, get index of point it belongs to + idx -= orig_pts_num; if (rectangle_status == GLSelectionRectangle::Deselect) unselect_point(points_idxs[idx]); else From a0ee41770d390efb7c298c397172e1198c85f08d Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Mon, 1 Nov 2021 13:48:34 +0100 Subject: [PATCH 044/130] Fix of Print::apply() creating hierarchy of regions for complex scenarios: Unnecessary regions were created for a modifier over a volume or a modifier, where the modifier did not modify any of its parent's properties. This lead to an explosion of regions for this particular 3MF. Fixes Non Responsive & Memory Leak when opening or changing this 3MF project #7220 --- src/libslic3r/PrintApply.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 0f70cf3cc1..c10e96edea 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -854,15 +854,14 @@ static PrintObjectRegions* generate_print_object_regions( for (int parent_region_id = int(layer_range.volume_regions.size()) - 1; parent_region_id >= 0; -- parent_region_id) if (const PrintObjectRegions::VolumeRegion &parent_region = layer_range.volume_regions[parent_region_id]; parent_region.model_volume->is_model_part() || parent_region.model_volume->is_modifier()) { - const PrintObjectRegions::BoundingBox *parent_bbox = find_volume_extents(layer_range, *parent_region.model_volume); - assert(parent_bbox != nullptr); - if (parent_bbox->intersects(*bbox)) - layer_range.volume_regions.push_back({ - &volume, parent_region_id, - get_create_region(region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders)), - bbox - }); - } + const PrintObjectRegions::BoundingBox *parent_bbox = find_volume_extents(layer_range, *parent_region.model_volume); + assert(parent_bbox != nullptr); + if (parent_bbox->intersects(*bbox)) + // Only create new region for a modifier, which actually modifies config of it's parent. + if (PrintRegionConfig config = region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders); + config != parent_region.region->config()) + layer_range.volume_regions.push_back({ &volume, parent_region_id, get_create_region(std::move(config)), bbox }); + } } } } From 30a37d0c2583fcc93bef7922d38dfc055ee1c13b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 1 Nov 2021 15:05:19 +0100 Subject: [PATCH 045/130] Fix of #7213: Not generated inner brim after 7ff76d07684858fd937ef2f5d863f105a10f798e. --- src/libslic3r/Brim.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 8f31b0695c..f8f2127277 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -177,11 +177,14 @@ static ExPolygons top_level_outer_brim_area(const Print &print if ((brim_type == BrimType::btOuterOnly || brim_type == BrimType::btOuterAndInner) && is_top_outer_brim) append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare)); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type != BrimType::btNoBrim) append(no_brim_area_object, offset_ex(ExPolygon(ex_poly.contour), brim_separation, ClipperLib::jtSquare)); @@ -230,16 +233,19 @@ static ExPolygons inner_brim_area(const Print &print, append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); } + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btOuterAndInner) - append(brim_area_object, diff_ex(shrink_ex(ex_poly.holes, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly.holes, brim_width + brim_separation, ClipperLib::jtSquare))); + append(brim_area_object, diff_ex(shrink_ex(ex_poly_holes_reversed, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly_holes_reversed, brim_width + brim_separation, ClipperLib::jtSquare))); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare)); - append(holes_object, ex_poly.holes); + append(holes_object, ex_poly_holes_reversed); } append(no_brim_area_object, offset_ex(bottom_layers_expolygons[print_object_idx], brim_separation, ClipperLib::jtSquare)); From 78879b2e84f96bd33a89f69345267399d79f41d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 1 Nov 2021 15:07:05 +0100 Subject: [PATCH 046/130] Fixed missing brims for nested objects. Brim wasn't generated when some object was placed inside the hole of another object. --- src/libslic3r/Brim.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index f8f2127277..858ca770b0 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -72,10 +72,6 @@ static ConstPrintObjectPtrs get_top_level_objects_with_brim(const Print &print, ConstPrintObjectPtrs island_to_object; for(size_t print_object_idx = 0; print_object_idx < print.objects().size(); ++print_object_idx) { const PrintObject *object = print.objects()[print_object_idx]; - - if (! object->has_brim()) - continue; - Polygons islands_object; islands_object.reserve(bottom_layers_expolygons[print_object_idx].size()); for (const ExPolygon &ex_poly : bottom_layers_expolygons[print_object_idx]) @@ -134,6 +130,9 @@ static Polygons top_level_outer_brim_islands(const ConstPrintObjectPtrs &top_lev { Polygons islands; for (const PrintObject *object : top_level_objects_with_brim) { + if (!object->has_brim()) + continue; + //FIXME how about the brim type? auto brim_separation = float(scale_(object->config().brim_separation.value)); Polygons islands_object; @@ -243,7 +242,7 @@ static ExPolygons inner_brim_area(const Print &print, append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, diff_ex(ExPolygon(ex_poly.contour), shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare))); append(holes_object, ex_poly_holes_reversed); } From 73af0ed331601652e5b101559e7e5060c3c466cb Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 2 Nov 2021 09:52:44 +0100 Subject: [PATCH 047/130] Fixing slow conversion from cgal mesh format --- src/libslic3r/MeshBoolean.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index 95daa33a60..346d7a9546 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -148,19 +148,23 @@ template TriangleMesh cgal_to_triangle_mesh(const _Mesh &cgalmesh) its.vertices.reserve(cgalmesh.num_vertices()); its.indices.reserve(cgalmesh.num_faces()); - for (auto &vi : cgalmesh.vertices()) { + const auto &faces = cgalmesh.faces(); + const auto &vertices = cgalmesh.vertices(); + int vsize = int(vertices.size()); + + for (auto &vi : vertices) { auto &v = cgalmesh.point(vi); // Don't ask... its.vertices.emplace_back(to_vec3f(v)); } - - for (auto &face : cgalmesh.faces()) { + + for (auto &face : faces) { auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face)); int i = 0; Vec3i facet; for (auto v : vtc) { int iv = v; - if (i > 2 || iv < 0 || iv >= int(cgalmesh.vertices().size())) { i = 0; break; } + if (i > 2 || iv < 0 || iv >= vsize) { i = 0; break; } facet(i++) = iv; } From 79d9fd154eb051641e21a5cc4e8087b1137dbbe1 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 25 Oct 2021 17:40:18 +0200 Subject: [PATCH 048/130] Wrong build on windows system (32 vs 64bit) dialog --- src/slic3r/GUI/GUI_App.cpp | 23 +++++++++++++++++++++++ src/slic3r/GUI/NotificationManager.hpp | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 49fbb8a313..0b7bf45bca 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -812,6 +812,29 @@ bool GUI_App::OnInit() bool GUI_App::on_init_inner() { +// win32 build on win64 and viceversa +#ifdef _WIN64 + if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "") { + wxRichMessageDialog dlg(nullptr, + _L("You have started PrusaSlicer for 64-bit architecture on 32-bit system." + "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." + "\nDo you wish to continue?"), + "PrusaSlicer", wxICON_QUESTION | wxYES_NO); + if (dlg.ShowModal() != wxID_YES) + return false; + } +#elif _WIN32 + if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") { + wxRichMessageDialog dlg(nullptr, + _L("You have started PrusaSlicer for 32-bit architecture on 64-bit system." + "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." + "\nDo you wish to continue?"), + "PrusaSlicer", wxICON_QUESTION | wxYES_NO); + if (dlg.ShowModal() != wxID_YES) + return false; + } +#endif // _WIN64 + // Forcing back menu icons under gtk2 and gtk3. Solution is based on: // https://docs.gtk.org/gtk3/class.Settings.html // see also https://docs.wxwidgets.org/3.0/classwx_menu_item.html#a2b5d6bcb820b992b1e4709facbf6d4fb diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index 9adcc240d0..655b17e634 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -112,7 +112,7 @@ enum class NotificationType // information about netfabb is finished repairing model (blocking proccess) NetfabbFinished, // Short meesage to fill space between start and finish of export - ExportOngoing + ExportOngoing, }; class NotificationManager From 8bf4408731339d0d56ee51dd86c44a67e1984a03 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Tue, 26 Oct 2021 14:03:58 +0200 Subject: [PATCH 049/130] Fix of #7170. Delayed notification is not moved until push will succeed. --- src/slic3r/GUI/NotificationManager.cpp | 8 ++++++-- src/slic3r/GUI/NotificationManager.hpp | 1 + src/slic3r/GUI/Plater.cpp | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp index a984b6ba75..0af8e32f5e 100644 --- a/src/slic3r/GUI/NotificationManager.cpp +++ b/src/slic3r/GUI/NotificationManager.cpp @@ -2068,9 +2068,11 @@ bool NotificationManager::update_notifications(GLCanvas3D& canvas) if ((*it).remaining_time > 0) (*it).remaining_time -= time_since_render; if ((*it).remaining_time <= 0) { - if ((*it).condition_callback()) { // push notification, erase it from waiting list (frame is scheduled by push) + if ((*it).notification && (*it).condition_callback()) { // push notification, erase it from waiting list (frame is scheduled by push) (*it).notification->reset_timer(); - if (push_notification_data(std::move((*it).notification), 0)) { + // if activate_existing returns false, we expect push to return true. + if(!this->activate_existing((*it).notification.get()) || (*it).delay_interval == 0) { + push_notification_data(std::move((*it).notification), 0); it = m_waiting_notifications.erase(it); continue; } @@ -2107,11 +2109,13 @@ bool NotificationManager::activate_existing(const NotificationManager::PopNotifi const std::string &new_text = notification->get_data().text1; for (auto it = m_pop_notifications.begin(); it != m_pop_notifications.end(); ++it) { if ((*it)->get_type() == new_type && !(*it)->is_finished()) { + // multiple of one type allowed, but must have different text if (std::find(m_multiple_types.begin(), m_multiple_types.end(), new_type) != m_multiple_types.end()) { // If found same type and same text, return true - update will be performed on the old notif if ((*it)->compare_text(new_text) == false) { continue; } + // multiple of one type allowed, but must have different text nad ObjectID } else if (new_type == NotificationType::SlicingWarning) { auto w1 = dynamic_cast(notification); auto w2 = dynamic_cast(it->get()); diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index 655b17e634..6c50f64070 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -706,6 +706,7 @@ private: // Otherwise another delay interval waiting. Timestamp is 0. // Note that notification object is constructed when being added to the waiting list, but there are no updates called on it and its timer is reset at regular push. // Also note that no control of same notification is done during push_delayed_notification_data but if waiting notif fails to push, it continues waiting. + // If delay_interval is 0, notification is pushed only after initial_delay no matter the result. void push_delayed_notification_data(std::unique_ptr notification, std::function condition_callback, int64_t initial_delay, int64_t delay_interval); //finds older notification of same type and moves it to the end of queue. returns true if found bool activate_existing(const NotificationManager::PopNotification* notification); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ec09ac1ad2..57c8a23283 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4030,7 +4030,7 @@ void Plater::priv::on_export_began(wxCommandEvent& evt) { if (show_warning_dialog) warnings_dialog(); - notification_manager->push_delayed_notification(NotificationType::ExportOngoing, [](){return true;}, 1000, 1000); + notification_manager->push_delayed_notification(NotificationType::ExportOngoing, [](){return true;}, 1000, 0); } void Plater::priv::on_slicing_began() { From f23a0298ed280fc6f1547899a4586b6e19eb7437 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Tue, 26 Oct 2021 14:22:35 +0200 Subject: [PATCH 050/130] ExportOutgoing notification should not show on upload --- src/slic3r/GUI/Plater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 57c8a23283..710a6ffd25 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3294,6 +3294,7 @@ void Plater::priv::export_gcode(fs::path output_path, bool output_path_on_remova show_warning_dialog = true; if (! output_path.empty()) { background_process.schedule_export(output_path.string(), output_path_on_removable_media); + notification_manager->push_delayed_notification(NotificationType::ExportOngoing, []() {return true; }, 1000, 0); } else { background_process.schedule_upload(std::move(upload_job)); } @@ -4030,7 +4031,6 @@ void Plater::priv::on_export_began(wxCommandEvent& evt) { if (show_warning_dialog) warnings_dialog(); - notification_manager->push_delayed_notification(NotificationType::ExportOngoing, [](){return true;}, 1000, 0); } void Plater::priv::on_slicing_began() { From 4c8e13947cf6a50b82f9ed0af2fd8c8a4f0596f5 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Tue, 26 Oct 2021 10:04:48 +0200 Subject: [PATCH 051/130] Hint hypertext preferences highlight --- resources/data/hints.ini | 7 +++++-- src/slic3r/GUI/HintNotification.cpp | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/data/hints.ini b/resources/data/hints.ini index a79a8228a1..96d006d55a 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -34,8 +34,9 @@ # # Open preferences (might add item to highlight) # hypertext_type = preferences -# hypertext_preferences_page = 0 (values 0-2 according to prefernces tab to be opened) -# +# hypertext_preferences_page = 2 (values 0-2 according to prefernces tab to be opened) +# hypertext_preferences_item = show_collapse_button (name of variable saved in prusaslicer.ini connected to the setting in preferences) +# # Open gallery (no aditional var) # hypertext_type = gallery # @@ -97,6 +98,7 @@ documentation_link = https://help.prusa3d.com/en/article/reload-from-disk_120427 text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = show_collapse_button [hint:Perspective camera] text = Perspective camera\nDid you know that you can use the K key to quickly switch between an orthographic and perspective camera? @@ -213,6 +215,7 @@ disabled_tags = SLA text = Settings in non-modal window\nDid you know that you can open the Settings in a new non-modal window? This means you can have settings open on one screen and the G-code Preview on the other. Go to thePreferencesand select Settings in non-modal window. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = dlg_settings_layout_mode [hint:Adaptive infills] text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in the documentation. diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp index 21aecd15b1..450067c48a 100644 --- a/src/slic3r/GUI/HintNotification.cpp +++ b/src/slic3r/GUI/HintNotification.cpp @@ -413,9 +413,9 @@ void HintDatabase::load_hints_from_file(const boost::filesystem::path& path) // open preferences } else if(dict["hypertext_type"] == "preferences") { int page = static_cast(std::atoi(dict["hypertext_preferences_page"].c_str())); - HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, [page]() { wxGetApp().open_preferences(page); } }; + std::string item = dict["hypertext_preferences_item"]; + HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, [page, item]() { wxGetApp().open_preferences(page, item); } }; m_loaded_hints.emplace_back(hint_data); - } else if (dict["hypertext_type"] == "plater") { std::string item = dict["hypertext_plater_item"]; HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, true, documentation_link, [item]() { wxGetApp().plater()->canvas3D()->highlight_toolbar_item(item); } }; From ca8f7fbf805621d75579ece7b41db4c6e0150c2f Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 25 Oct 2021 14:19:22 +0200 Subject: [PATCH 052/130] Copying from other config folders: Find if there is more recent config in other folders (alpha / beta / release). If yes, ask user, make snapshot, copy files. if there is no current config, ask user and copy recent one. --- src/libslic3r/AppConfig.cpp | 20 ++--- src/libslic3r/AppConfig.hpp | 5 ++ src/libslic3r/PresetBundle.cpp | 55 ++++++++++++++ src/libslic3r/PresetBundle.hpp | 1 + src/slic3r/GUI/GUI_App.cpp | 133 +++++++++++++++++++++++++++++++++ src/slic3r/GUI/GUI_App.hpp | 6 ++ 6 files changed, 210 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index d5444edc63..e5af1fa731 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -248,11 +248,11 @@ std::string AppConfig::load() bool recovered = false; try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); #ifdef WIN32 // Verify the checksum of the config file without taking just for debugging purpose. if (!verify_config_file_checksum(ifs)) - BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::config_path() << + BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::loading_path() << " has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit."; ifs.seekg(0, boost::nowide::ifstream::beg); @@ -262,32 +262,32 @@ std::string AppConfig::load() #ifdef WIN32 // The configuration file is corrupted, try replacing it with the backup configuration. ifs.close(); - std::string backup_path = (boost::format("%1%.bak") % AppConfig::config_path()).str(); + std::string backup_path = (boost::format("%1%.bak") % AppConfig::loading_path()).str(); if (boost::filesystem::exists(backup_path)) { // Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct. boost::nowide::ifstream backup_ifs(backup_path); if (!verify_config_file_checksum(backup_ifs)) { - BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::loading_path(), backup_path); backup_ifs.close(); boost::filesystem::remove(backup_path); - } else if (std::string error_message; copy_file(backup_path, AppConfig::config_path(), error_message, false) != SUCCESS) { - BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::config_path(), backup_path, error_message); + } else if (std::string error_message; copy_file(backup_path, AppConfig::loading_path(), error_message, false) != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::loading_path(), backup_path, error_message); backup_ifs.close(); boost::filesystem::remove(backup_path); } else { - BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::loading_path(), backup_path); // Try parse configuration file after restore from backup. try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); pt::read_ini(ifs, tree); recovered = true; } catch (pt::ptree_error& ex) { - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::loading_path(), ex.what()); } } } else #endif // WIN32 - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::loading_path(), ex.what()); if (! recovered) { // Report the initial error of parsing PrusaSlicer.ini. // Error while parsing config file. We'll customize the error message and rethrow to be displayed. diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 03c35f35a3..5d9f32ab71 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -148,6 +148,9 @@ public: // Does the config file exist? bool exists(); + void set_loading_path(const std::string& path) { m_loading_path = path; } + std::string loading_path() { return (m_loading_path.empty() ? config_path() : m_loading_path); } + std::vector get_recent_projects() const; void set_recent_projects(const std::vector& recent_projects); @@ -196,6 +199,8 @@ private: Semver m_orig_version; // Whether the existing version is before system profiles & configuration updating bool m_legacy_datadir; + + std::string m_loading_path; }; } // namespace Slic3r diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index feaf0cac7d..56f01bb476 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -188,6 +188,61 @@ void PresetBundle::setup_directories() } } +// recursively copy all files and dirs in from_dir to to_dir +static void copy_dir(const boost::filesystem::path& from_dir, const boost::filesystem::path& to_dir) +{ + if(!boost::filesystem::is_directory(from_dir)) + return; + // i assume to_dir.parent surely exists + if (!boost::filesystem::is_directory(to_dir)) + boost::filesystem::create_directory(to_dir); + for (auto& dir_entry : boost::filesystem::directory_iterator(from_dir)) { + if (!boost::filesystem::is_directory(dir_entry.path())) { + std::string em; + CopyFileResult cfr = copy_file(dir_entry.path().string(), (to_dir / dir_entry.path().filename()).string(), em, false); + if (cfr != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << "Error when copying files from " << from_dir << " to " << to_dir << ": " << em; + } + } else { + copy_dir(dir_entry.path(), to_dir / dir_entry.path().filename()); + } + } +} + +void PresetBundle::copy_files(const std::string& from) +{ + boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); + // list of searched paths based on current directory system in setup_directories() + // do not copy cache and snapshots + boost::filesystem::path from_data_dir = boost::filesystem::path(from); + std::initializer_list from_dirs= { + from_data_dir / "vendor", + from_data_dir / "shapes", +#ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR + // Store the print/filament/printer presets into a "presets" directory. + data_dir / "presets", + data_dir / "presets" / "print", + data_dir / "presets" / "filament", + data_dir / "presets" / "sla_print", + data_dir / "presets" / "sla_material", + data_dir / "presets" / "printer", + data_dir / "presets" / "physical_printer" +#else + // Store the print/filament/printer presets at the same location as the upstream Slic3r. + from_data_dir / "print", + from_data_dir / "filament", + from_data_dir / "sla_print", + from_data_dir / "sla_material", + from_data_dir / "printer", + from_data_dir / "physical_printer" +#endif + }; + // copy recursively all files + for (const boost::filesystem::path& from_dir : from_dirs) { + copy_dir(from_dir, data_dir / from_dir.filename()); + } +} + PresetsConfigSubstitutions PresetBundle::load_presets(AppConfig &config, ForwardCompatibilitySubstitutionRule substitution_rule, const PresetPreferences& preferred_selection/* = PresetPreferences()*/) { diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index e5e49fb470..a975e37fe3 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -24,6 +24,7 @@ public: void reset(bool delete_files); void setup_directories(); + void copy_files(const std::string& from); struct PresetPreferences { std::string printer_model_id;// name of a preferred printer model diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 0b7bf45bca..cd286e45ae 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -743,6 +743,25 @@ bool GUI_App::init_opengl() #endif } +// gets path to PrusaSlicer.ini, returns semver from first line comment +static boost::optional parse_semver_from_ini(std::string path) +{ + std::ifstream stream(path); + std::stringstream buffer; + buffer << stream.rdbuf(); + std::string body = buffer.str(); + size_t end_line = body.find_first_of("\n\r"); + body.resize(end_line); + size_t start = body.find("PrusaSlicer "); + if (start == std::string::npos) + return boost::none; + body = body.substr(start + 12); + size_t end = body.find_first_of(" \n\r"); + if (end < body.size()) + body.resize(end); + return Semver::parse(body); +} + void GUI_App::init_app_config() { // Profiles for the alpha are stored into the PrusaSlicer-alpha directory to not mix with the current release. @@ -791,9 +810,110 @@ void GUI_App::init_app_config() "\n\n" + app_config->config_path() + "\n\n" + error); } } + // Save orig_version here, so its empty if no app_config existed before this run. + m_last_config_version = app_config->orig_version();//parse_semver_from_ini(app_config->config_path()); } } +// returns true if found newer version and user agreed to use it +bool GUI_App::check_older_app_config(Semver current_version, bool backup) +{ + // find other version app config (alpha / beta / release) + std::string config_path = app_config->config_path(); + boost::filesystem::path parent_file_path(config_path); + std::string filename = parent_file_path.filename().string(); + parent_file_path.remove_filename().remove_filename(); + + std::vector candidates; + + if (SLIC3R_APP_KEY "-alpha" != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY "-alpha" / filename); + if (SLIC3R_APP_KEY "-beta" != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY "-beta" / filename); + if (SLIC3R_APP_KEY != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY / filename); + + Semver last_semver = current_version; + for (const auto& candidate : candidates) { + if (boost::filesystem::exists(candidate)) { + // parse + boost::optionalother_semver = parse_semver_from_ini(candidate.string()); + if (other_semver && *other_semver > last_semver) { + last_semver = *other_semver; + m_older_data_dir_path = candidate.parent_path().string(); + } + } + } + if (m_older_data_dir_path.empty()) + return false; + BOOST_LOG_TRIVIAL(info) << "last app config file used: " << m_older_data_dir_path; + // ask about using older data folder + wxRichMessageDialog msg(nullptr, backup ? + wxString::Format(_L("PrusaSlicer detected another configuration folder at %s." + "\nIts version is %s." + "\nLast version you used in current configuration folder is %s." + "\nPlease note that PrusaSlicer uses different folders to save configuration of alpha, beta and full release versions." + "\nWould you like to copy found configuration to your current configuration folder?" + + "\n\nIf you select yes, PrusaSlicer will copy all profiles and other files from found folder to the current one. Overwriting any existing file with matching name." + "\nIf you select no, you will continue with current configuration.") + , m_older_data_dir_path, last_semver.to_string(), current_version.to_string()) + : wxString::Format(_L("PrusaSlicer detected another configuration folder at %s." + "\nIts version is %s." + "\nThere is no configuration file in current configuration folder." + "\nPlease note that PrusaSlicer uses different folders to save configuration of alpha, beta and full release versions." + "\nWould you like to copy found configuration to your current configuration folder?" + + "\n\nIf you select yes, PrusaSlicer will copy all profiles and other files from found folder to the current one." + "\nIf you select no, you will start with clean installation with configuration wizard.") + , m_older_data_dir_path, last_semver.to_string()) + , _L("PrusaSlicer"), wxICON_QUESTION | wxYES_NO); + if (msg.ShowModal() == wxID_YES) { + std::string snapshot_id; + if (backup) { + // configuration snapshot + std::string comment; + if (const Config::Snapshot* snapshot = Config::take_config_snapshot_report_error( + *app_config, + Config::Snapshot::SNAPSHOT_USER, + comment); + snapshot != nullptr) + // Is thos correct? Save snapshot id for later, when new app config is loaded. + snapshot_id = snapshot->id; + else + BOOST_LOG_TRIVIAL(error) << "Failed to take congiguration snapshot: "; + } + + // This will tell later (when config folder structure is sure to exists) to copy files from m_older_data_dir_path + m_init_app_config_from_older = true; + // load app config from older file + app_config->set_loading_path((boost::filesystem::path(m_older_data_dir_path) / filename).string()); + std::string error = app_config->load(); + if (!error.empty()) { + // Error while parsing config file. We'll customize the error message and rethrow to be displayed. + if (is_editor()) { + throw Slic3r::RuntimeError( + _u8L("Error parsing PrusaSlicer config file, it is probably corrupted. " + "Try to manually delete the file to recover from the error. Your user profiles will not be affected.") + + "\n\n" + app_config->config_path() + "\n\n" + error); + } + else { + throw Slic3r::RuntimeError( + _u8L("Error parsing PrusaGCodeViewer config file, it is probably corrupted. " + "Try to manually delete the file to recover from the error.") + + "\n\n" + app_config->config_path() + "\n\n" + error); + } + } + if (!snapshot_id.empty()) + app_config->set("on_snapshot", snapshot_id); + m_app_conf_exists = true; + return true; + } + return false; +} + +void GUI_App::copy_older_config() +{ + preset_bundle->copy_files(m_older_data_dir_path); +} + void GUI_App::init_single_instance_checker(const std::string &name, const std::string &path) { BOOST_LOG_TRIVIAL(debug) << "init wx instance checker " << name << " "<< path; @@ -884,6 +1004,13 @@ bool GUI_App::on_init_inner() } } + if (m_last_config_version) { + if (*m_last_config_version < *Semver::parse(SLIC3R_VERSION)) + check_older_app_config(*m_last_config_version, true); + } else { + check_older_app_config(Semver(), false); + } + app_config->set("version", SLIC3R_VERSION); app_config->save(); @@ -922,12 +1049,18 @@ bool GUI_App::on_init_inner() scrn->SetText(_L("Loading configuration")+ dots); } + + preset_bundle = new PresetBundle(); // just checking for existence of Slic3r::data_dir is not enough : it may be an empty directory // supplied as argument to --datadir; in that case we should still run the wizard preset_bundle->setup_directories(); + + if (m_init_app_config_from_older) + copy_older_config(); + if (is_editor()) { #ifdef __WXMSW__ if (app_config->get("associate_3mf") == "1") diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index cbabd16e7d..90a8776a67 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -337,6 +337,8 @@ public: private: bool on_init_inner(); void init_app_config(); + bool check_older_app_config(Semver current_version, bool backup); + void copy_older_config(); void window_pos_save(wxTopLevelWindow* window, const std::string &name); void window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false); void window_pos_sanitize(wxTopLevelWindow* window); @@ -344,6 +346,10 @@ private: bool config_wizard_startup(); void check_updates(const bool verbose); + + bool m_init_app_config_from_older { false }; + std::string m_older_data_dir_path; + boost::optional m_last_config_version; }; DECLARE_APP(GUI_App) From 4e9f906848f6bbe31476e355919692ec1fb7b40d Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 2 Nov 2021 12:11:42 +0100 Subject: [PATCH 053/130] Cooling buffer used to remove F word from G1 Fxxx lines if the feed rate did not change compared to the preceding value creating empty "G1" lines. The empty "G1" lines are now removed. Improves Features fail with extra G1 moves when above a certain layer height and Detect Thin Walls is enabled #5176 Improves Thin wall detection causes miniature loops to be added, and emits empty G1 commands #3058 --- src/libslic3r/GCode/CoolingBuffer.cpp | 46 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 3dcc121c1e..5657b60fb1 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -769,27 +769,31 @@ std::string CoolingBuffer::apply_layer_cooldown( // Find the 'F' word. const char *fpos = strstr(line_start + 2, " F") + 2; int new_feedrate = current_feedrate; + // Modify the F word of the current G-code line. bool modify = false; + // Remove the F word from the current G-code line. + bool remove = false; assert(fpos != nullptr); - if (line->slowdown) { - modify = true; - new_feedrate = int(floor(60. * line->feedrate + 0.5)); - } else { - new_feedrate = atoi(fpos); - if (new_feedrate != current_feedrate) { - // Append the line without the comment. - new_gcode.append(line_start, end - line_start); - current_feedrate = new_feedrate; - } else if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) { + new_feedrate = line->slowdown ? int(floor(60. * line->feedrate + 0.5)) : atoi(fpos); + if (new_feedrate == current_feedrate) { + // No need to change the F value. + if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) // Feedrate does not change and this line does not move the print head. Skip the complete G-code line including the G-code comment. end = line_end; - } else { - // Remove the feedrate from the G0/G1 line. - modify = true; - } + else + // Remove the feedrate from the G0/G1 line. The G-code line may become empty! + remove = true; + } else if (line->slowdown) { + // The F value will be overwritten. + modify = true; + } else { + // The F value is different from current_feedrate, but not slowed down, thus the G-code line will not be modified. + // Emit the line without the comment. + new_gcode.append(line_start, end - line_start); + current_feedrate = new_feedrate; } - if (modify) { - if (new_feedrate != current_feedrate) { + if (modify || remove) { + if (modify) { // Replace the feedrate. new_gcode.append(line_start, fpos - line_start); current_feedrate = new_feedrate; @@ -805,12 +809,16 @@ std::string CoolingBuffer::apply_layer_cooldown( new_gcode.append(line_start, f - line_start + 1); } // Skip the non-whitespaces of the F parameter up the comment or end of line. - for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++fpos); + for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++ fpos); // Append the rest of the line without the comment. if (fpos < end) + // The G-code line is not empty yet. Emit the rest of it. new_gcode.append(fpos, end - fpos); - // There should never be an empty G1 statement emited by the filter. Such lines should be removed completely. - assert(new_gcode.size() < 4 || new_gcode.substr(new_gcode.size() - 4) != "G1 \n"); + else if (remove && new_gcode == "G1") { + // The G-code line only contained the F word, now it is empty. Remove it completely including the comments. + new_gcode.resize(new_gcode.size() - 2); + end = line_end; + } } // Process the rest of the line. if (end < line_end) { From e04c934253b2078fe69d1835f6d98cc26474efac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 29 Oct 2021 12:20:32 +0200 Subject: [PATCH 054/130] Added more debug output for multi-material segmentation for debugging projection of the painted lines. --- src/libslic3r/MultiMaterialSegmentation.cpp | 49 +++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 900073d3a4..a44409cd4d 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -44,6 +44,8 @@ struct segment_traits { //#define MMU_SEGMENTATION_DEBUG_GRAPH //#define MMU_SEGMENTATION_DEBUG_REGIONS //#define MMU_SEGMENTATION_DEBUG_INPUT +//#define MMU_SEGMENTATION_DEBUG_PAINTED_LINES +//#define MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS namespace Slic3r { @@ -1582,6 +1584,38 @@ void export_processed_input_expolygons_to_svg(const std::string &path, const Lay } #endif // MMU_SEGMENTATION_DEBUG_INPUT +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES +static void export_painted_lines_to_svg(const std::string &path, const std::vector &painted_lines, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const Line &line : to_lines(lslices)) + svg.draw(line, "green", stroke_width); + + for (const PaintedLine &painted_line : painted_lines) + svg.draw(painted_line.projected_line, painted_line.color < int(colors.size()) ? colors[painted_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS +static void export_colorized_polygons_to_svg(const std::string &path, const std::vector> &colorized_polygons, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "green", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const std::vector &colorized_polygon : colorized_polygons) + for (const ColoredLine &colorized_line : colorized_polygon) + svg.draw(colorized_line.line, colorized_line.color < int(colors.size())? colors[colorized_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + // Check if all ColoredLine representing a single layer uses the same color. static bool has_layer_only_one_color(const std::vector> &colored_polygons) { @@ -1746,7 +1780,22 @@ std::vector>> multi_material_segmentati std::vector &painted_lines_single = painted_lines[layer_idx]; if (!painted_lines_single.empty()) { +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-%d-%d.svg", layer_idx, iRun++), painted_lines_single, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + std::vector> color_poly = colorize_polygons(edge_grids[layer_idx].contours(), painted_lines_single); + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + { + static int iRun = 0; + export_colorized_polygons_to_svg(debug_out_path("mm-colorized_polygons-%d-%d.svg", layer_idx, iRun++), color_poly, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + assert(!color_poly.empty()); assert(!color_poly.front().empty()); if (has_layer_only_one_color(color_poly)) { From 3eb4ae309a36921bbd9500dd7a23547ac557c689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 29 Oct 2021 12:22:22 +0200 Subject: [PATCH 055/130] Small refactoring of post-processing of the projected painted lines in multi-material segmentation. --- src/libslic3r/MultiMaterialSegmentation.cpp | 275 +++++++++++--------- 1 file changed, 147 insertions(+), 128 deletions(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index a44409cd4d..122a0308c3 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -149,18 +149,6 @@ struct PaintedLineVisitor static inline const double append_threshold2 = Slic3r::sqr(append_threshold); }; -static std::vector to_colored_lines(const EdgeGrid::Contour &contour, int color) -{ - std::vector lines; - if (contour.num_segments() > 2) { - lines.reserve(contour.num_segments()); - for (auto it = contour.begin(); it != contour.end() - 1; ++it) - lines.push_back({Line(*it, *(it + 1)), color}); - lines.push_back({Line(contour.back(), contour.front()), color}); - } - return lines; -} - static Polygon colored_points_to_polygon(const std::vector &lines) { Polygon out; @@ -244,25 +232,18 @@ static std::vector>> get_all_segments(cons return all_segments; } -static std::vector colorize_line(const Line & line_to_process, - const size_t start_idx, - const size_t end_idx, - std::vector &painted_lines) +static std::vector filter_painted_lines(const Line &line_to_process, const size_t start_idx, const size_t end_idx, const std::vector &painted_lines) { - std::vector internal_painted; - for (size_t line_idx = start_idx; line_idx <= end_idx; ++line_idx) - internal_painted.emplace_back(painted_lines[line_idx]); - const int filter_eps_value = scale_(0.1f); std::vector filtered_lines; - filtered_lines.emplace_back(internal_painted.front()); - for (size_t line_idx = 1; line_idx < internal_painted.size(); ++line_idx) { + filtered_lines.emplace_back(painted_lines[start_idx]); + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { // line_to_process is already all colored. Skip another possible duplicate coloring. if(filtered_lines.back().projected_line.b == line_to_process.b) break; PaintedLine &prev = filtered_lines.back(); - PaintedLine &curr = internal_painted[line_idx]; + const PaintedLine &curr = painted_lines[line_idx]; double prev_length = prev.projected_line.length(); double curr_dist_start = (curr.projected_line.a - prev.projected_line.a).cast().norm(); @@ -280,31 +261,84 @@ static std::vector colorize_line(const Line & line_to_ } } else { double curr_dist_end = (curr.projected_line.b - prev.projected_line.a).cast().norm(); - if (curr_dist_end <= prev_length) { - } else { - if (prev.color == curr.color) { + if (curr_dist_end > prev_length) { + if (prev.color == curr.color) prev.projected_line.b = curr.projected_line.b; - } else { - curr.projected_line.a = prev.projected_line.b; - filtered_lines.emplace_back(curr); - } + else + filtered_lines.push_back({curr.contour_idx, curr.line_idx, Line{prev.projected_line.b, curr.projected_line.b}, curr.color}); } } } - std::vector final_lines; - double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); - if (dist_to_start <= filter_eps_value) { + if (double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); dist_to_start <= filter_eps_value) filtered_lines.front().projected_line.a = line_to_process.a; - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); - } else { - final_lines.push_back({Line(line_to_process.a, filtered_lines.front().projected_line.a), 0}); - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); + + if (double dist_to_end = (filtered_lines.back().projected_line.b - line_to_process.b).cast().norm(); dist_to_end <= filter_eps_value) + filtered_lines.back().projected_line.b = line_to_process.b; + + return filtered_lines; +} + +static std::vector> post_process_painted_lines(const std::vector &contours, std::vector &&painted_lines) +{ + if (painted_lines.empty()) + return {}; + + auto comp = [&contours](const PaintedLine &first, const PaintedLine &second) { + Point first_start_p = contours[first.contour_idx].segment_start(first.line_idx); + return first.contour_idx < second.contour_idx || + (first.contour_idx == second.contour_idx && + (first.line_idx < second.line_idx || + (first.line_idx == second.line_idx && + ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || + ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && + (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); + }; + std::sort(painted_lines.begin(), painted_lines.end(), comp); + + std::vector> filtered_painted_lines(contours.size()); + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_lines.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_lines.size() || painted_lines[curr_painted_line_idx].contour_idx != painted_lines[next_painted_line_idx].contour_idx || painted_lines[curr_painted_line_idx].line_idx != painted_lines[next_painted_line_idx].line_idx) { + const PaintedLine &start_line = painted_lines[prev_painted_line_idx]; + const Line &line_to_process = contours[start_line.contour_idx].get_segment(start_line.line_idx); + Slic3r::append(filtered_painted_lines[painted_lines[curr_painted_line_idx].contour_idx], filter_painted_lines(line_to_process, prev_painted_line_idx, curr_painted_line_idx, painted_lines)); + prev_painted_line_idx = next_painted_line_idx; + } } - for (size_t line_idx = 1; line_idx < filtered_lines.size(); ++line_idx) { - ColoredLine &prev = final_lines.back(); - PaintedLine &curr = filtered_lines[line_idx]; + return filtered_painted_lines; +} + +#ifndef NDEBUG +static bool are_lines_connected(const std::vector &colored_lines) +{ + for (size_t line_idx = 1; line_idx < colored_lines.size(); ++line_idx) + if (colored_lines[line_idx - 1].line.b != colored_lines[line_idx].line.a) + return false; + return true; +} +#endif + +static std::vector colorize_line(const Line &line_to_process, + const size_t start_idx, + const size_t end_idx, + const std::vector &painted_contour) +{ + assert(start_idx < painted_contour.size() && end_idx < painted_contour.size() && start_idx <= end_idx); + assert(std::all_of(painted_contour.begin() + start_idx, painted_contour.begin() + end_idx + 1, [&painted_contour, &start_idx](const auto &p_line) { return painted_contour[start_idx].line_idx == p_line.line_idx; })); + + const int filter_eps_value = scale_(0.1f); + std::vector final_lines; + const PaintedLine &first_line = painted_contour[start_idx]; + if (double dist_to_start = (first_line.projected_line.a - line_to_process.a).cast().norm(); dist_to_start > filter_eps_value) + final_lines.push_back({Line(line_to_process.a, first_line.projected_line.a), 0}); + final_lines.push_back({first_line.projected_line, first_line.color}); + + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { + ColoredLine &prev = final_lines.back(); + const PaintedLine &curr = painted_contour[line_idx]; double line_dist = (curr.projected_line.a - prev.line.b).cast().norm(); if (line_dist <= filter_eps_value) { @@ -320,18 +354,16 @@ static std::vector colorize_line(const Line & line_to_ } } - double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); - if (dist_to_end <= filter_eps_value) - final_lines.back().line.b = line_to_process.b; - else + // If there is non-painted space, then inserts line painted by a default color. + if (double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); dist_to_end > filter_eps_value) final_lines.push_back({Line(final_lines.back().line.b, line_to_process.b), 0}); - for (size_t line_idx = 1; line_idx < final_lines.size(); ++line_idx) - assert(final_lines[line_idx - 1].line.b == final_lines[line_idx].line.a); + // Make sure all the lines are connected. + assert(are_lines_connected(final_lines)); for (size_t line_idx = 2; line_idx < final_lines.size(); ++line_idx) { const ColoredLine &line_0 = final_lines[line_idx - 2]; - ColoredLine & line_1 = final_lines[line_idx - 1]; + ColoredLine &line_1 = final_lines[line_idx - 1]; const ColoredLine &line_2 = final_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color) @@ -351,52 +383,25 @@ static std::vector colorize_line(const Line & line_to_ final_lines = colored_lines_simple; - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.front().color != final_lines[1].color && final_lines.front().line.length() <= scale_(0.2)) { final_lines[1].line.a = final_lines.front().line.a; final_lines.erase(final_lines.begin()); } - } - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.back().color != final_lines[final_lines.size() - 2].color && final_lines.back().line.length() <= scale_(0.2)) { final_lines[final_lines.size() - 2].line.b = final_lines.back().line.b; final_lines.pop_back(); } - } return final_lines; } -static std::vector colorize_polygon(const EdgeGrid::Contour &contour, const size_t start_idx, const size_t end_idx, std::vector &painted_lines) -{ - std::vector new_lines; - new_lines.reserve(end_idx - start_idx + 1); - for (size_t idx = 0; idx < painted_lines[start_idx].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx) ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx); - std::vector lines_c_line = colorize_line(contour.get_segment(painted_lines[first_idx].line_idx), first_idx, second_idx, painted_lines); - new_lines.insert(new_lines.end(), lines_c_line.begin(), lines_c_line.end()); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].line_idx + 1; idx < painted_lines[second_idx + 1].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - first_idx = second_idx; - } - - for (size_t idx = painted_lines[end_idx].line_idx + 1; idx < contour.num_segments(); ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - +static std::vector filter_colorized_polygon(std::vector &&new_lines) { for (size_t line_idx = 2; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 2]; - ColoredLine & line_1 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 1]; const ColoredLine &line_2 = new_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color && line_0.color >= 1) { @@ -406,8 +411,8 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou for (size_t line_idx = 3; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 3]; - ColoredLine & line_1 = new_lines[line_idx - 2]; - ColoredLine & line_2 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 2]; + ColoredLine &line_2 = new_lines[line_idx - 1]; const ColoredLine &line_3 = new_lines[line_idx - 0]; if (line_0.color == line_3.color && (line_0.color != line_1.color || line_0.color != line_2.color) && line_0.color >= 1 && line_3.color >= 1) { @@ -466,40 +471,58 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou } } - return new_lines; + return std::move(new_lines); } -static std::vector> colorize_polygons(const std::vector &contours, std::vector &painted_lines) -{ - const size_t start_idx = 0; - const size_t end_idx = painted_lines.size() - 1; +static std::vector colorize_contour(const EdgeGrid::Contour &contour, const std::vector &painted_contour) { + assert(painted_contour.empty() || std::all_of(painted_contour.begin(), painted_contour.end(), [&painted_contour](const auto &p_line) { return painted_contour.front().contour_idx == p_line.contour_idx; })); - std::vector> new_polygons; - new_polygons.reserve(contours.size()); - - for (size_t idx = 0; idx < painted_lines[start_idx].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx) - ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx); - new_polygons.emplace_back(colorize_polygon(contours[painted_lines[first_idx].contour_idx], first_idx, second_idx, painted_lines)); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].contour_idx + 1; idx < painted_lines[second_idx + 1].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - first_idx = second_idx; + std::vector colorized_contour; + if (painted_contour.empty()) { + // Appends contour with default color for lines before the first PaintedLine. + colorized_contour.reserve(contour.num_segments()); + for (const Line &line : contour.get_segments()) + colorized_contour.emplace_back(ColoredLine{line, 0}); + return colorized_contour; } - for (size_t idx = painted_lines[end_idx].contour_idx + 1; idx < contours.size(); ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); + colorized_contour.reserve(contour.num_segments() + painted_contour.size()); + for (size_t idx = 0; idx < painted_contour.front().line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - return new_polygons; + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_contour.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_contour.size() || painted_contour[curr_painted_line_idx].line_idx != painted_contour[next_painted_line_idx].line_idx) { + const std::vector &painted_contour_copy = painted_contour; + Slic3r::append(colorized_contour, colorize_line(contour.get_segment(painted_contour[prev_painted_line_idx].line_idx), prev_painted_line_idx, curr_painted_line_idx, painted_contour_copy)); + + // Appends contour with default color for lines between the current and the next PaintedLine. + if (next_painted_line_idx < painted_contour.size()) + for (size_t idx = painted_contour[curr_painted_line_idx].line_idx + 1; idx < painted_contour[next_painted_line_idx].line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + prev_painted_line_idx = next_painted_line_idx; + } + } + + // Appends contour with default color for lines after the last PaintedLine. + for (size_t idx = painted_contour.back().line_idx + 1; idx < contour.num_segments(); ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + assert(!colorized_contour.empty()); + return filter_colorized_polygon(std::move(colorized_contour)); +} + +static std::vector> colorize_contours(const std::vector &contours, const std::vector> &painted_contours) +{ + assert(contours.size() == painted_contours.size()); + std::vector> colorized_contours(contours.size()); + for (const std::vector &painted_contour : painted_contours) { + size_t contour_idx = &painted_contour - &painted_contours.front(); + colorized_contours[contour_idx] = colorize_contour(contours[contour_idx], painted_contours[contour_idx]); + } + return colorized_contours; } using boost::polygon::voronoi_diagram; @@ -1585,7 +1608,7 @@ void export_processed_input_expolygons_to_svg(const std::string &path, const Lay #endif // MMU_SEGMENTATION_DEBUG_INPUT #ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES -static void export_painted_lines_to_svg(const std::string &path, const std::vector &painted_lines, const ExPolygons &lslices) +static void export_painted_lines_to_svg(const std::string &path, const std::vector> &all_painted_lines, const ExPolygons &lslices) { const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; coordf_t stroke_width = scale_(0.05); @@ -1596,8 +1619,9 @@ static void export_painted_lines_to_svg(const std::string &path, const std::vect for (const Line &line : to_lines(lslices)) svg.draw(line, "green", stroke_width); - for (const PaintedLine &painted_line : painted_lines) - svg.draw(painted_line.projected_line, painted_line.color < int(colors.size()) ? colors[painted_line.color] : "black", stroke_width); + for (const std::vector &painted_lines : all_painted_lines) + for (const PaintedLine &painted_line : painted_lines) + svg.draw(painted_line.projected_line, painted_line.color < int(colors.size()) ? colors[painted_line.color] : "black", stroke_width); } #endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES @@ -1765,29 +1789,24 @@ std::vector>> multi_material_segmentati tbb::parallel_for(tbb::blocked_range(0, print_object.layers().size()), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - auto comp = [&edge_grids, layer_idx](const PaintedLine &first, const PaintedLine &second) { - Point first_start_p = edge_grids[layer_idx].contours()[first.contour_idx].segment_start(first.line_idx); - return first.contour_idx < second.contour_idx || - (first.contour_idx == second.contour_idx && - (first.line_idx < second.line_idx || - (first.line_idx == second.line_idx && - ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || - ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && - (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); - }; - - std::sort(painted_lines[layer_idx].begin(), painted_lines[layer_idx].end(), comp); - std::vector &painted_lines_single = painted_lines[layer_idx]; - - if (!painted_lines_single.empty()) { + if (!painted_lines[layer_idx].empty()) { #ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES { static int iRun = 0; - export_painted_lines_to_svg(debug_out_path("mm-painted-lines-%d-%d.svg", layer_idx, iRun++), painted_lines_single, input_expolygons[layer_idx]); + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-%d-%d.svg", layer_idx, iRun++), {painted_lines[layer_idx]}, input_expolygons[layer_idx]); } #endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES - std::vector> color_poly = colorize_polygons(edge_grids[layer_idx].contours(), painted_lines_single); + std::vector> post_processed_painted_lines = post_process_painted_lines(edge_grids[layer_idx].contours(), std::move(painted_lines[layer_idx])); + +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-post-processed-%d-%d.svg", layer_idx, iRun++), post_processed_painted_lines, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + + std::vector> color_poly = colorize_contours(edge_grids[layer_idx].contours(), post_processed_painted_lines); #ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS { From 54b0ee6a4a4ed84bf3de12087d74cb802110c2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 29 Oct 2021 12:24:15 +0200 Subject: [PATCH 056/130] Fix of #7112 (Default color sometimes appeared between two multi-material painted areas) --- src/libslic3r/MultiMaterialSegmentation.cpp | 69 ++++++++++++--------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 122a0308c3..11e2632994 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -432,44 +432,57 @@ static std::vector filter_colorized_polygon(std::vector= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - double seg0l = segment_length(segments[pair_idx - 1]); - double seg1l = segment_length(segments[pair_idx - 0]); + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; - if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + double seg0l = segment_length(segments[curr_idx]); + double seg1l = segment_length(segments[next_idx]); + + if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } segments = get_segments(new_lines); - for (size_t pair_idx = 1; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 1].first].color; - int color1 = new_lines[segments[pair_idx - 0].first].color; - double seg1l = segment_length(segments[pair_idx - 0]); + if (segments.size() >= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + double seg1l = segment_length(segments[next_idx]); + + if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } - for (size_t pair_idx = 2; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 2].first].color; - int color1 = new_lines[segments[pair_idx - 1].first].color; - int color2 = new_lines[segments[pair_idx - 0].first].color; + segments = get_segments(new_lines); + if (segments.size() >= 3) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + size_t next_next_idx = next_idx_modulo(next_idx, segments.size()); - if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[pair_idx - 1]) <= scale_(0.5)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + int color2 = new_lines[segments[next_next_idx].first].color; + + if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[next_idx]) <= scale_(0.5)) { + for (size_t seg_start_idx = segments[next_next_idx].first; seg_start_idx != segments[next_next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_next_idx].second].color = color0; + } } - } return std::move(new_lines); } From f9bdde560374eda13d89863973594103e0cc6814 Mon Sep 17 00:00:00 2001 From: Filip Sykala Date: Tue, 2 Nov 2021 14:23:49 +0100 Subject: [PATCH 057/130] Remove SimplifyMesh --- src/libslic3r/CMakeLists.txt | 3 - src/libslic3r/QuadricEdgeCollapse.cpp | 40 +- src/libslic3r/SLA/Hollowing.cpp | 7 +- src/libslic3r/SimplifyMesh.cpp | 66 --- src/libslic3r/SimplifyMesh.hpp | 23 - src/libslic3r/SimplifyMeshImpl.hpp | 670 -------------------------- tests/libslic3r/CMakeLists.txt | 1 - tests/libslic3r/test_meshboolean.cpp | 1 - tests/libslic3r/test_meshsimplify.cpp | 11 - 9 files changed, 43 insertions(+), 779 deletions(-) delete mode 100644 src/libslic3r/SimplifyMesh.cpp delete mode 100644 src/libslic3r/SimplifyMesh.hpp delete mode 100644 src/libslic3r/SimplifyMeshImpl.hpp delete mode 100644 tests/libslic3r/test_meshsimplify.cpp diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 4ffde3d5bf..5ad5892897 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -232,9 +232,6 @@ add_library(libslic3r STATIC MinAreaBoundingBox.cpp miniz_extension.hpp miniz_extension.cpp - SimplifyMesh.hpp - SimplifyMeshImpl.hpp - SimplifyMesh.cpp MarchingSquares.hpp Execution/Execution.hpp Execution/ExecutionSeq.hpp diff --git a/src/libslic3r/QuadricEdgeCollapse.cpp b/src/libslic3r/QuadricEdgeCollapse.cpp index 7efe15bb24..48a72e6d84 100644 --- a/src/libslic3r/QuadricEdgeCollapse.cpp +++ b/src/libslic3r/QuadricEdgeCollapse.cpp @@ -2,7 +2,6 @@ #include #include #include "MutablePriorityQueue.hpp" -#include "SimplifyMeshImpl.hpp" #include using namespace Slic3r; @@ -13,10 +12,47 @@ using namespace Slic3r; // only private namespace not neccessary be in .hpp namespace QuadricEdgeCollapse { + // SymetricMatrix + class SymMat { + using T = double; + static const constexpr size_t N = 10; + T m[N]; + public: + explicit SymMat(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } + + // Make plane + SymMat(T a, T b, T c, T d) + { + m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; + m[4] = b * b; m[5] = b * c; m[6] = b * d; + m[7] = c * c; m[8] = c * d; + m[9] = d * d; + } + + T operator[](int c) const { return m[c]; } + + // Determinant + T det(int a11, int a12, int a13, + int a21, int a22, int a23, + int a31, int a32, int a33) const + { + T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + + m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - + m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; + + return det; + } + + const SymMat &operator+=(const SymMat &n) + { + for (size_t i = 0; i < N; ++i) m[i] += n[i]; + return *this; + } + }; + using Vertices = std::vector; using Triangle = stl_triangle_vertex_indices; using Indices = std::vector; - using SymMat = SimplifyMesh::implementation::SymetricMatrix; using ThrowOnCancel = std::function; using StatusFn = std::function; // smallest error caused by edges, identify smallest edge in triangle diff --git a/src/libslic3r/SLA/Hollowing.cpp b/src/libslic3r/SLA/Hollowing.cpp index 9cac7f63bc..b0d33a0cad 100644 --- a/src/libslic3r/SLA/Hollowing.cpp +++ b/src/libslic3r/SLA/Hollowing.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -132,7 +132,10 @@ InteriorPtr generate_interior(const TriangleMesh & mesh, // flip normals back... swap_normals(interior->mesh); - Slic3r::simplify_mesh(interior->mesh); + + // simplify mesh lossless + float loss_less_max_error = 2*std::numeric_limits::epsilon(); + its_quadric_edge_collapse(interior->mesh, 0U, &loss_less_max_error); its_compactify_vertices(interior->mesh); its_merge_vertices(interior->mesh); diff --git a/src/libslic3r/SimplifyMesh.cpp b/src/libslic3r/SimplifyMesh.cpp deleted file mode 100644 index d30ecfec57..0000000000 --- a/src/libslic3r/SimplifyMesh.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "SimplifyMesh.hpp" -#include "SimplifyMeshImpl.hpp" - -namespace SimplifyMesh { - -template<> struct vertex_traits { - using coord_type = float; - using compute_type = double; - - static inline float x(const stl_vertex &v) { return v.x(); } - static inline float& x(stl_vertex &v) { return v.x(); } - - static inline float y(const stl_vertex &v) { return v.y(); } - static inline float& y(stl_vertex &v) { return v.y(); } - - static inline float z(const stl_vertex &v) { return v.z(); } - static inline float& z(stl_vertex &v) { return v.z(); } -}; - -template<> struct mesh_traits { - using vertex_t = stl_vertex; - static size_t face_count(const indexed_triangle_set &m) - { - return m.indices.size(); - } - static size_t vertex_count(const indexed_triangle_set &m) - { - return m.vertices.size(); - } - static vertex_t vertex(const indexed_triangle_set &m, size_t idx) - { - return m.vertices[idx]; - } - static void vertex(indexed_triangle_set &m, size_t idx, const vertex_t &v) - { - m.vertices[idx] = v; - } - static Index3 triangle(const indexed_triangle_set &m, size_t idx) - { - std::array t; - for (size_t i = 0; i < 3; ++i) t[i] = size_t(m.indices[idx](int(i))); - return t; - } - static void triangle(indexed_triangle_set &m, size_t fidx, const Index3 &t) - { - auto &face = m.indices[fidx]; - face(0) = int(t[0]); face(1) = int(t[1]); face(2) = int(t[2]); - } - static void update(indexed_triangle_set &m, size_t vc, size_t fc) - { - m.vertices.resize(vc); - m.indices.resize(fc); - } -}; - -} // namespace SimplifyMesh - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &m) -{ - SimplifyMesh::implementation::SimplifiableMesh sm{&m}; - sm.simplify_mesh_lossless(); -} - -} diff --git a/src/libslic3r/SimplifyMesh.hpp b/src/libslic3r/SimplifyMesh.hpp deleted file mode 100644 index 23eb343d1c..0000000000 --- a/src/libslic3r/SimplifyMesh.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef MESHSIMPLIFY_HPP -#define MESHSIMPLIFY_HPP - -#include - -#include - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &); - -// TODO: (but this can be done with IGL as well) -// void simplify_mesh(indexed_triangle_set &, int face_count, float agressiveness = 0.5f); - -template void simplify_mesh(TriangleMesh &m, Args &&...a) -{ - simplify_mesh(m.its, std::forward(a)...); - m = TriangleMesh{ std::move(m.its) }; -} - -} // namespace Slic3r - -#endif // MESHSIMPLIFY_H diff --git a/src/libslic3r/SimplifyMeshImpl.hpp b/src/libslic3r/SimplifyMeshImpl.hpp deleted file mode 100644 index d143b6d876..0000000000 --- a/src/libslic3r/SimplifyMeshImpl.hpp +++ /dev/null @@ -1,670 +0,0 @@ -// /////////////////////////////////////////// -// -// Mesh Simplification Tutorial -// -// (C) by Sven Forstmann in 2014 -// -// License : MIT -// http://opensource.org/licenses/MIT -// -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification -// -// 5/2016: Chris Rorden created minimal version for OSX/Linux/Windows compile -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification/ -// -// libslic3r refactor by tamasmeszaros - -#ifndef SIMPLIFYMESHIMPL_HPP -#define SIMPLIFYMESHIMPL_HPP - -#include -#include -#include -#include -#include - -#ifndef NDEBUG -#include -#include -#endif - -namespace SimplifyMesh { - -using Bary = std::array; -using Index3 = std::array; - -template struct vertex_traits { - using coord_type = typename Vertex::coord_type; - using compute_type = coord_type; - - static coord_type x(const Vertex &v); - static coord_type& x(Vertex &v); - - static coord_type y(const Vertex &v); - static coord_type& y(Vertex &v); - - static coord_type z(const Vertex &v); - static coord_type& z(Vertex &v); -}; - -template struct mesh_traits { - using vertex_t = typename Mesh::vertex_t; - - static size_t face_count(const Mesh &m); - static size_t vertex_count(const Mesh &m); - static vertex_t vertex(const Mesh &m, size_t vertex_idx); - static void vertex(Mesh &m, size_t vertex_idx, const vertex_t &v); - static Index3 triangle(const Mesh &m, size_t face_idx); - static void triangle(Mesh &m, size_t face_idx, const Index3 &t); - static void update(Mesh &m, size_t vertex_count, size_t face_count); -}; - -namespace implementation { - -// A shorter C++14 style form of the enable_if metafunction -template -using enable_if_t = typename std::enable_if::type; - -// Meta predicates for floating, integer and generic arithmetic types -template -using FloatingOnly = enable_if_t::value, O>; - -template -using IntegerOnly = enable_if_t::value, O>; - -template -using ArithmeticOnly = enable_if_t::value, O>; - -template< class T > -struct remove_cvref { - using type = typename std::remove_cv< - typename std::remove_reference::type>::type; -}; - -template< class T > -using remove_cvref_t = typename remove_cvref::type; - -template FloatingOnly is_approx(T val, T ref) { return std::abs(val - ref) < 1e-8; } -template IntegerOnly is_approx(T val, T ref) { val == ref; } - -template class SymetricMatrix { - static const constexpr size_t N = 10; -public: - - explicit SymetricMatrix(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } - - // Make plane - SymetricMatrix(T a, T b, T c, T d) - { - m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; - m[4] = b * b; m[5] = b * c; m[6] = b * d; - m[7] = c * c; m[8] = c * d; - m[9] = d * d; - } - - T operator[](int c) const { return m[c]; } - - // Determinant - T det(int a11, int a12, int a13, - int a21, int a22, int a23, - int a31, int a32, int a33) const - { - T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + - m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - - m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; - - return det; - } - - const SymetricMatrix& operator+=(const SymetricMatrix& n) - { - for (size_t i = 0; i < N; ++i) m[i] += n[i]; - return *this; - } - - SymetricMatrix operator+(const SymetricMatrix& n) - { - SymetricMatrix self = *this; - return self += n; - } - - T m[N]; -}; - -template using TCoord = typename vertex_traits>::coord_type; -template using TCompute = typename vertex_traits>::compute_type; -template inline TCoord x(const V &v) { return vertex_traits>::x(v); } -template inline TCoord y(const V &v) { return vertex_traits>::y(v); } -template inline TCoord z(const V &v) { return vertex_traits>::z(v); } -template inline TCoord& x(V &v) { return vertex_traits>::x(v); } -template inline TCoord& y(V &v) { return vertex_traits>::y(v); } -template inline TCoord& z(V &v) { return vertex_traits>::z(v); } -template using TVertex = typename mesh_traits>::vertex_t; -template using TMeshCoord = TCoord>; - -template TCompute dot(const Vertex &v1, const Vertex &v2) -{ - return TCompute(x(v1)) * x(v2) + - TCompute(y(v1)) * y(v2) + - TCompute(z(v1)) * z(v2); -} - -template Vertex cross(const Vertex &a, const Vertex &b) -{ - return Vertex{y(a) * z(b) - z(a) * y(b), - z(a) * x(b) - x(a) * z(b), - x(a) * y(b) - y(a) * x(b)}; -} - -template TCompute lengthsq(const Vertex &v) -{ - return TCompute(x(v)) * x(v) + TCompute(y(v)) * y(v) + - TCompute(z(v)) * z(v); -} - -template void normalize(Vertex &v) -{ - double square = std::sqrt(lengthsq(v)); - x(v) /= square; y(v) /= square; z(v) /= square; -} - -using Bary = std::array; - -template -Bary barycentric(const Vertex &p, const Vertex &a, const Vertex &b, const Vertex &c) -{ - Vertex v0 = (b - a); - Vertex v1 = (c - a); - Vertex v2 = (p - a); - - double d00 = dot(v0, v0); - double d01 = dot(v0, v1); - double d11 = dot(v1, v1); - double d20 = dot(v2, v0); - double d21 = dot(v2, v1); - double denom = d00 * d11 - d01 * d01; - double v = (d11 * d20 - d01 * d21) / denom; - double w = (d00 * d21 - d01 * d20) / denom; - double u = 1.0 - v - w; - - return {u, v, w}; -} - -template class SimplifiableMesh { - Mesh *m_mesh; - - using Vertex = TVertex; - using Coord = TMeshCoord; - using HiPrecison = TCompute>; - using SymMat = SymetricMatrix; - - struct FaceInfo { - size_t idx; - double err[4] = {0.}; - bool deleted = false, dirty = false; - Vertex n; - explicit FaceInfo(size_t id): idx(id) {} - }; - - struct VertexInfo { - size_t idx; - size_t tstart = 0, tcount = 0; - bool border = false; - SymMat q; - explicit VertexInfo(size_t id): idx(id) {} - }; - - struct Ref { size_t face; size_t vertex; }; - - std::vector m_refs; - std::vector m_faceinfo; - std::vector m_vertexinfo; - - void compact_faces(); - void compact(); - - size_t mesh_vcount() const { return mesh_traits::vertex_count(*m_mesh); } - size_t mesh_facecount() const { return mesh_traits::face_count(*m_mesh); } - - size_t vcount() const { return m_vertexinfo.size(); } - - inline Vertex read_vertex(size_t vi) const - { - return mesh_traits::vertex(*m_mesh, vi); - } - - inline Vertex read_vertex(const VertexInfo &vinf) const - { - return read_vertex(vinf.idx); - } - - inline void write_vertex(size_t idx, const Vertex &v) const - { - mesh_traits::vertex(*m_mesh, idx, v); - } - - inline void write_vertex(const VertexInfo &vinf, const Vertex &v) const - { - write_vertex(vinf.idx, v); - } - - inline Index3 read_triangle(size_t fi) const - { - return mesh_traits::triangle(*m_mesh, fi); - } - - inline Index3 read_triangle(const FaceInfo &finf) const - { - return read_triangle(finf.idx); - } - - inline void write_triangle(size_t idx, const Index3 &t) - { - return mesh_traits::triangle(*m_mesh, idx, t); - } - - inline void write_triangle(const FaceInfo &finf, const Index3 &t) - { - return write_triangle(finf.idx, t); - } - - inline std::array triangle_vertices(const Index3 &f) const - { - std::array p; - for (size_t i = 0; i < 3; ++i) p[i] = read_vertex(f[i]); - return p; - } - - // Error between vertex and Quadric - static double vertex_error(const SymMat &q, const Vertex &v) - { - Coord _x = x(v) , _y = y(v), _z = z(v); - return q[0] * _x * _x + 2 * q[1] * _x * _y + 2 * q[2] * _x * _z + - 2 * q[3] * _x + q[4] * _y * _y + 2 * q[5] * _y * _z + - 2 * q[6] * _y + q[7] * _z * _z + 2 * q[8] * _z + q[9]; - } - - // Error for one edge - double calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result); - - void calculate_error(FaceInfo &fi) - { - Vertex p; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) - fi.err[j] = calculate_error(t[j], t[(j + 1) % 3], p); - - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - } - - void update_mesh(int iteration); - - // Update triangle connections and edge error after a edge is collapsed - void update_triangles(size_t i, VertexInfo &vi, std::vector &deleted, int &deleted_triangles); - - // Check if a triangle flips when this edge is removed - bool flipped(const Vertex &p, size_t i0, size_t i1, VertexInfo &v0, VertexInfo &v1, std::vector &deleted); - -public: - - explicit SimplifiableMesh(Mesh *m) : m_mesh{m} - { - static_assert( - std::is_arithmetic::value, - "Coordinate type of mesh has to be an arithmetic type!"); - - m_faceinfo.reserve(mesh_traits::face_count(*m)); - m_vertexinfo.reserve(mesh_traits::vertex_count(*m)); - for (size_t i = 0; i < mesh_facecount(); ++i) m_faceinfo.emplace_back(i); - for (size_t i = 0; i < mesh_vcount(); ++i) m_vertexinfo.emplace_back(i); - - } - - template void simplify_mesh_lossless(ProgressFn &&fn); - void simplify_mesh_lossless() { simplify_mesh_lossless([](int){}); } -}; - -template void SimplifiableMesh::compact_faces() -{ - auto it = std::remove_if(m_faceinfo.begin(), m_faceinfo.end(), - [](const FaceInfo &inf) { return inf.deleted; }); - - m_faceinfo.erase(it, m_faceinfo.end()); -} - -template void SimplifiableMesh::compact() -{ - for (auto &vi : m_vertexinfo) vi.tcount = 0; - - compact_faces(); - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) m_vertexinfo[vidx].tcount = 1; - - size_t dst = 0; - for (VertexInfo &vi : m_vertexinfo) { - if (vi.tcount) { - vi.tstart = dst; - write_vertex(dst++, read_vertex(vi)); - } - } - - size_t vertex_count = dst; - - dst = 0; - for (const FaceInfo &fi : m_faceinfo) { - Index3 t = read_triangle(fi); - for (size_t &idx : t) idx = m_vertexinfo[idx].tstart; - write_triangle(dst++, t); - } - - mesh_traits::update(*m_mesh, vertex_count, m_faceinfo.size()); -} - -template -double SimplifiableMesh::calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result) -{ - // compute interpolated vertex - - SymMat q = m_vertexinfo[id_v1].q + m_vertexinfo[id_v2].q; - - bool border = m_vertexinfo[id_v1].border & m_vertexinfo[id_v2].border; - double error = 0; - HiPrecison det = q.det(0, 1, 2, 1, 4, 5, 2, 5, 7); - - if (!is_approx(det, HiPrecison(0)) && !border) - { - // q_delta is invertible - x(p_result) = Coord(-1) / det * q.det(1, 2, 3, 4, 5, 6, 5, 7, 8); // vx = A41/det(q_delta) - y(p_result) = Coord( 1) / det * q.det(0, 2, 3, 1, 5, 6, 2, 7, 8); // vy = A42/det(q_delta) - z(p_result) = Coord(-1) / det * q.det(0, 1, 3, 1, 4, 6, 2, 5, 8); // vz = A43/det(q_delta) - - error = vertex_error(q, p_result); - } else { - // det = 0 -> try to find best result - Vertex p1 = read_vertex(id_v1); - Vertex p2 = read_vertex(id_v2); - Vertex p3 = (p1 + p2) / 2; - double error1 = vertex_error(q, p1); - double error2 = vertex_error(q, p2); - double error3 = vertex_error(q, p3); - error = std::min(error1, std::min(error2, error3)); - - if (is_approx(error1, error)) p_result = p1; - if (is_approx(error2, error)) p_result = p2; - if (is_approx(error3, error)) p_result = p3; - } - - return error; -} - -template void SimplifiableMesh::update_mesh(int iteration) -{ - if (iteration > 0) compact_faces(); - - assert(mesh_vcount() == m_vertexinfo.size()); - - // - // Init Quadrics by Plane & Edge Errors - // - // required at the beginning ( iteration == 0 ) - // recomputing during the simplification is not required, - // but mostly improves the result for closed meshes - // - if (iteration == 0) { - - for (VertexInfo &vinf : m_vertexinfo) vinf.q = SymMat{}; - for (FaceInfo &finf : m_faceinfo) { - Index3 t = read_triangle(finf); - std::array p = triangle_vertices(t); - Vertex n = cross(Vertex(p[1] - p[0]), Vertex(p[2] - p[0])); - normalize(n); - finf.n = n; - - for (size_t fi : t) - m_vertexinfo[fi].q += SymMat(x(n), y(n), z(n), -dot(n, p[0])); - - calculate_error(finf); - } - } - - // Init Reference ID list - for (VertexInfo &vi : m_vertexinfo) { vi.tstart = 0; vi.tcount = 0; } - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) - m_vertexinfo[vidx].tcount++; - - size_t tstart = 0; - for (VertexInfo &vi : m_vertexinfo) { - vi.tstart = tstart; - tstart += vi.tcount; - vi.tcount = 0; - } - - // Write References - m_refs.resize(m_faceinfo.size() * 3); - for (size_t i = 0; i < m_faceinfo.size(); ++i) { - const FaceInfo &fi = m_faceinfo[i]; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) { - VertexInfo &vi = m_vertexinfo[t[j]]; - - assert(vi.tstart + vi.tcount < m_refs.size()); - - Ref &ref = m_refs[vi.tstart + vi.tcount]; - ref.face = i; - ref.vertex = j; - vi.tcount++; - } - } - - // Identify boundary : vertices[].border=0,1 - if (iteration == 0) { - for (VertexInfo &vi: m_vertexinfo) vi.border = false; - - std::vector vcount, vids; - - for (VertexInfo &vi: m_vertexinfo) { - vcount.clear(); - vids.clear(); - - for(size_t j = 0; j < vi.tcount; ++j) { - assert(vi.tstart + j < m_refs.size()); - FaceInfo &fi = m_faceinfo[m_refs[vi.tstart + j].face]; - Index3 t = read_triangle(fi); - - for (size_t fid : t) { - size_t ofs=0; - while (ofs < vcount.size()) - { - if (vids[ofs] == fid) break; - ofs++; - } - if (ofs == vcount.size()) - { - vcount.emplace_back(1); - vids.emplace_back(fid); - } - else - vcount[ofs]++; - } - } - - for (size_t j = 0; j < vcount.size(); ++j) - if(vcount[j] == 1) m_vertexinfo[vids[j]].border = true; - } - } -} - -template -void SimplifiableMesh::update_triangles(size_t i0, - VertexInfo & vi, - std::vector &deleted, - int &deleted_triangles) -{ - Vertex p; - for (size_t k = 0; k < vi.tcount; ++k) { - assert(vi.tstart + k < m_refs.size()); - - Ref &r = m_refs[vi.tstart + k]; - FaceInfo &fi = m_faceinfo[r.face]; - - if (fi.deleted) continue; - - if (deleted[k]) { - fi.deleted = true; - deleted_triangles++; - continue; - } - - Index3 t = read_triangle(fi); - t[r.vertex] = i0; - write_triangle(fi, t); - - fi.dirty = true; - fi.err[0] = calculate_error(t[0], t[1], p); - fi.err[1] = calculate_error(t[1], t[2], p); - fi.err[2] = calculate_error(t[2], t[0], p); - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - m_refs.emplace_back(r); - } -} - -template -bool SimplifiableMesh::flipped(const Vertex & p, - size_t /*i0*/, - size_t i1, - VertexInfo & v0, - VertexInfo & /*v1*/, - std::vector &deleted) -{ - for (size_t k = 0; k < v0.tcount; ++k) { - size_t ridx = v0.tstart + k; - assert(ridx < m_refs.size()); - - FaceInfo &fi = m_faceinfo[m_refs[ridx].face]; - if (fi.deleted) continue; - - Index3 t = read_triangle(fi); - int s = m_refs[ridx].vertex; - size_t id1 = t[(s+1) % 3]; - size_t id2 = t[(s+2) % 3]; - - if(id1 == i1 || id2 == i1) // delete ? - { - deleted[k] = true; - continue; - } - - Vertex d1 = read_vertex(id1) - p; - normalize(d1); - Vertex d2 = read_vertex(id2) - p; - normalize(d2); - - if (std::abs(dot(d1, d2)) > 0.999) return true; - - Vertex n = cross(d1, d2); - normalize(n); - - deleted[k] = false; - if (dot(n, fi.n) < 0.2) return true; - } - - return false; -} - -template -template void SimplifiableMesh::simplify_mesh_lossless(Fn &&fn) -{ - // init - for (FaceInfo &fi : m_faceinfo) fi.deleted = false; - - // main iteration loop - int deleted_triangles=0; - std::vector deleted0, deleted1; - - for (int iteration = 0; iteration < 9999; iteration ++) { - // update mesh constantly - update_mesh(iteration); - - // clear dirty flag - for (FaceInfo &fi : m_faceinfo) fi.dirty = false; - - // - // All triangles with edges below the threshold will be removed - // - // The following numbers works well for most models. - // If it does not, try to adjust the 3 parameters - // - double threshold = std::numeric_limits::epsilon(); //1.0E-3 EPS; // Really? (tm) - - fn(iteration); - - for (FaceInfo &fi : m_faceinfo) { - if (fi.err[3] > threshold || fi.deleted || fi.dirty) continue; - - for (size_t j = 0; j < 3; ++j) { - if (fi.err[j] > threshold) continue; - - Index3 t = read_triangle(fi); - size_t i0 = t[j]; - VertexInfo &v0 = m_vertexinfo[i0]; - - size_t i1 = t[(j + 1) % 3]; - VertexInfo &v1 = m_vertexinfo[i1]; - - // Border check - if(v0.border != v1.border) continue; - - // Compute vertex to collapse to - Vertex p; - calculate_error(i0, i1, p); - - deleted0.resize(v0.tcount); // normals temporarily - deleted1.resize(v1.tcount); // normals temporarily - - // don't remove if flipped - if (flipped(p, i0, i1, v0, v1, deleted0)) continue; - if (flipped(p, i1, i0, v1, v0, deleted1)) continue; - - // not flipped, so remove edge - write_vertex(v0, p); - v0.q = v1.q + v0.q; - size_t tstart = m_refs.size(); - - update_triangles(i0, v0, deleted0, deleted_triangles); - update_triangles(i0, v1, deleted1, deleted_triangles); - - assert(m_refs.size() >= tstart); - - size_t tcount = m_refs.size() - tstart; - - if(tcount <= v0.tcount) - { - // save ram - if (tcount) { - auto from = m_refs.begin() + tstart, to = from + tcount; - std::copy(from, to, m_refs.begin() + v0.tstart); - } - } - else - // append - v0.tstart = tstart; - - v0.tcount = tcount; - break; - } - } - - if (deleted_triangles <= 0) break; - deleted_triangles = 0; - } - - compact(); -} - -} // namespace implementation -} // namespace SimplifyMesh - -#endif // SIMPLIFYMESHIMPL_HPP diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index 05898db28a..6475570c10 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -14,7 +14,6 @@ add_executable(${_TEST_NAME}_tests test_mutable_polygon.cpp test_mutable_priority_queue.cpp test_stl.cpp - test_meshsimplify.cpp test_meshboolean.cpp test_marchingsquares.cpp test_timeutils.cpp diff --git a/tests/libslic3r/test_meshboolean.cpp b/tests/libslic3r/test_meshboolean.cpp index 97d03ac238..f1582fe3be 100644 --- a/tests/libslic3r/test_meshboolean.cpp +++ b/tests/libslic3r/test_meshboolean.cpp @@ -3,7 +3,6 @@ #include #include -#include using namespace Slic3r; diff --git a/tests/libslic3r/test_meshsimplify.cpp b/tests/libslic3r/test_meshsimplify.cpp deleted file mode 100644 index d21c3a8924..0000000000 --- a/tests/libslic3r/test_meshsimplify.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -//#include - -//TEST_CASE("Mesh simplification", "[mesh_simplify]") { -// Simplify::load_obj(TEST_DATA_DIR PATH_SEPARATOR "zaba.obj"); -// Simplify::simplify_mesh_lossless(); -// Simplify::write_obj("zaba_simplified.obj"); -//} - From 992031620ec3dcebd1aa6d7f0c89ef2374ddc30a Mon Sep 17 00:00:00 2001 From: scott0122 <39105828+scott0122@users.noreply.github.com> Date: Wed, 3 Nov 2021 06:34:12 +0800 Subject: [PATCH 058/130] Repetier-Server: Enable "Start printing after upload" (#5351) --- src/slic3r/Utils/Repetier.cpp | 6 +++++- src/slic3r/Utils/Repetier.hpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/slic3r/Utils/Repetier.cpp b/src/slic3r/Utils/Repetier.cpp index 7b66922d70..094d1baa2c 100644 --- a/src/slic3r/Utils/Repetier.cpp +++ b/src/slic3r/Utils/Repetier.cpp @@ -107,7 +107,7 @@ bool Repetier::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error bool res = true; - auto url = make_url((boost::format("printer/model/%1%") % port).str()); + auto url = upload_data.start_print?make_url((boost::format("printer/job/%1%") % port).str()):make_url((boost::format("printer/model/%1%") % port).str()); BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Uploading file %2% at %3%, filename: %4%, path: %5%, print: %6%, group: %7%") % name @@ -125,6 +125,10 @@ bool Repetier::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error http.form_add("group", upload_data.group); } + if(upload_data.start_print) { + http.form_add("name", upload_filename.string()); + } + http.form_add("a", "upload") .form_add_file("filename", upload_data.source_path.string(), upload_filename.string()) .on_complete([&](std::string body, unsigned status) { diff --git a/src/slic3r/Utils/Repetier.hpp b/src/slic3r/Utils/Repetier.hpp index 5141dc040b..0575754178 100644 --- a/src/slic3r/Utils/Repetier.hpp +++ b/src/slic3r/Utils/Repetier.hpp @@ -27,7 +27,7 @@ public: bool upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn) const override; bool has_auto_discovery() const override { return false; } bool can_test() const override { return true; } - bool can_start_print() const override { return false; } + bool can_start_print() const override { return true; } bool supports_multiple_printers() const override { return true; } std::string get_host() const override { return host; } From d25d572b369b487f5aa9f1ac56204f762f6f9897 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Wed, 3 Nov 2021 09:46:33 +0100 Subject: [PATCH 059/130] Hints content --- resources/data/hints.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/data/hints.ini b/resources/data/hints.ini index 96d006d55a..4a0534e48a 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -197,7 +197,7 @@ documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom- disabled_tags = SLA [hint:Configuration snapshots] -text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. +text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776 hypertext_type = menubar hypertext_menubar_menu_name = Configuration From a771519b9f879b4572c1292557782b48b8b61a66 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Wed, 27 Oct 2021 16:29:37 +0200 Subject: [PATCH 060/130] Fix of #7169 Check if material or filament profile is_compatible before selecting it when it should be selected as first selected profile in wizard. --- src/libslic3r/PresetBundle.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 56f01bb476..b6e7fbd5ec 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -556,13 +556,15 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p auto printer_technology = printers.get_selected_preset().printer_technology(); if (printer_technology == ptFFF && ! preferred_selection.filament.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_FILAMENT, preferred_selection.filament); - if (auto it = filaments.find_preset_internal(preferred_preset_name); it != filaments.end() && it->is_visible) { + if (auto it = filaments.find_preset_internal(preferred_preset_name); + it != filaments.end() && it->is_visible && it->is_compatible) { filaments.select_preset_by_name_strict(preferred_preset_name); this->filament_presets.front() = filaments.get_selected_preset_name(); } } else if (printer_technology == ptSLA && ! preferred_selection.sla_material.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_SLA_MATERIAL, preferred_selection.sla_material); - if (auto it = sla_materials.find_preset_internal(preferred_preset_name); it != sla_materials.end() && it->is_visible) + if (auto it = sla_materials.find_preset_internal(preferred_preset_name); + it != sla_materials.end() && it->is_visible && it->is_compatible) sla_materials.select_preset_by_name_strict(preferred_preset_name); } } From 1a0893b7838f3867c1d581e78f1f3bb2b9d81516 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 3 Nov 2021 17:11:58 +0100 Subject: [PATCH 061/130] Initial Ultimaker bundle --- resources/profiles/Ultimaker.idx | 2 + resources/profiles/Ultimaker.ini | 400 +++++ .../Ultimaker/ULTIMAKER2_thumbnail.png | Bin 0 -> 49277 bytes resources/profiles/Ultimaker/ultimaker2.svg | 1531 +++++++++++++++++ .../profiles/Ultimaker/ultimaker2_bed.stl | Bin 0 -> 3484 bytes 5 files changed, 1933 insertions(+) create mode 100644 resources/profiles/Ultimaker.idx create mode 100644 resources/profiles/Ultimaker.ini create mode 100644 resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png create mode 100644 resources/profiles/Ultimaker/ultimaker2.svg create mode 100644 resources/profiles/Ultimaker/ultimaker2_bed.stl diff --git a/resources/profiles/Ultimaker.idx b/resources/profiles/Ultimaker.idx new file mode 100644 index 0000000000..a593d2fb4b --- /dev/null +++ b/resources/profiles/Ultimaker.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Ultimaker.ini b/resources/profiles/Ultimaker.ini new file mode 100644 index 0000000000..3aadf73585 --- /dev/null +++ b/resources/profiles/Ultimaker.ini @@ -0,0 +1,400 @@ +# Print profiles for the Ultimaker printers. +# https://github.com/prusa3d/PrusaSlicer-settings/issues/143 +# author: https://github.com/foreachthing + + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Ultimaker + +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 + +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Ultimaker/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. +# Printer model name will be shown by the installation wizard. + +[printer_model:ULTIMAKER2] +name = Ultimaker 2 +variants = 0.4 +technology = FFF +bed_model = ultimaker2_bed.stl +bed_texture = ultimaker2.svg +default_materials = Generic PLA @ULTIMAKER2; Generic PETG @ULTIMAKER2; Generic ABS @ULTIMAKER2 + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface. + +# Common print preset +[print:*common*] +avoid_crossing_perimeters = 1 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = rectilinear +bottom_solid_layers = 4 +bottom_solid_min_thickness = 0 +bridge_acceleration = 0 +bridge_angle = 0 +bridge_flow_ratio = 1 +bridge_speed = 60 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +clip_multipart_objects = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 0 +dont_support_bridges = 0 +draft_shield = disabled +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 0 +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 75% +external_perimeters_first = 0 +extra_perimeters = 1 +extruder_clearance_height = 50 +extruder_clearance_radius = 60 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 0 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.45 +first_layer_height = 0.2 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 20 +gcode_comments = 1 +gcode_label_objects = 0 +infill_acceleration = 0 +infill_anchor = 600% +infill_anchor_max = 50 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.5 +infill_first = 1 +infill_only_where_needed = 0 +infill_overlap = 35% +infill_speed = 60 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 80 +max_volumetric_speed = 0 +min_skirt_length = 2 +mmu_segmented_region_max_width = 0 +notes = Ultimaker 2, 0.4 mm Nozzle +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode +overhangs = 1 +perimeter_acceleration = 0 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 50 +perimeters = 2 +post_process = +print_settings_id = +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 75% +solid_infill_below_area = 10 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 40 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 45 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.2 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0.4 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = auto +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear-grid +support_material_spacing = 4 +support_material_speed = 60 +support_material_style = grid +support_material_synchronize_layers = 0 +support_material_threshold = 0 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.8 +thick_bridges = 1 +thin_walls = 0 +threads = 8 +top_fill_pattern = rectilinear +top_infill_extrusion_width = 0.45 +top_solid_infill_speed = 40 +top_solid_layers = 4 +top_solid_min_thickness = 0 +travel_speed = 120 +travel_speed_z = 0 +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + + +[print:*0.12mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.12 +perimeters = 3 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 6 +top_solid_layers = 7 + +[print:*0.20mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.20 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 4 +top_solid_layers = 5 + +[print:*0.25mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.25 +top_infill_extrusion_width = 0.45 +bottom_solid_layers = 3 +top_solid_layers = 4 + +[print:0.12mm DETAIL @ULTIMAKER2] +inherits = *0.12mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.20mm NORMAL @ULTIMAKER2] +inherits = *0.20mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.25mm DRAFT @ULTIMAKER2] +inherits = *0.25mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +# Common filament preset +[filament:*common*] +cooling = 0 +compatible_printers = +extrusion_multiplier = 1 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_notes = "" +filament_settings_id = "" +filament_soluble = 0 +min_print_speed = 15 +slowdown_below_layer_time = 20 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ULTIMAKER.*/ + +[filament:*PLA*] +inherits = *common* +bed_temperature = 60 +fan_below_layer_time = 100 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PLA +filament_density = 1.24 +first_layer_bed_temperature = 55 +first_layer_temperature = 205 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 100 +max_fan_speed = 100 +bridge_fan_speed = 100 +disable_fan_first_layers = 3 +temperature = 210 + +[filament:*PET*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PETG +filament_density = 1.27 +first_layer_bed_temperature = 85 +bed_temperature = 85 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 20 +max_fan_speed = 40 +bridge_fan_speed = 40 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:*ABS*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = ABS +filament_density = 1.27 +first_layer_bed_temperature = 80 +bed_temperature = 80 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 5 +max_fan_speed = 5 +bridge_fan_speed = 10 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:Generic PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_cost = + +[filament:Generic Black PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_colour = #0E3F3F +filament_cost = + +[filament:Generic PETG @ULTIMAKER2] +inherits = *PET* +filament_vendor = Generic +filament_cost = + +[filament:Generic ABS @ULTIMAKER2] +inherits = *ABS* +filament_vendor = Generic +filament_cost = + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;layer:[layer_num];\nM117 Layer [layer_num];\n +between_objects_gcode = +deretract_speed = 0 +extruder_colour = #FFF0E0 +extruder_offset = 0x0 +gcode_flavor = reprap +silent_mode = 0 +remaining_times = 0 +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 3000 +machine_max_acceleration_y = 3000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 20 +machine_max_jerk_y = 20 +machine_max_jerk_z = 0.4 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +layer_gcode = +max_print_height = 212 +octoprint_apikey = +octoprint_host = +printer_notes = +printer_settings_id = +retract_before_travel = 5 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 6 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0 +retract_lift_below = 0 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 50 +serial_port = +single_extruder_multi_material = 0 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 0 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + +[printer:Ultimaker 2] +inherits = *common* +printer_model = ULTIMAKER2 +bed_shape = 0x0,224x0,224x225,0x225 +printer_variant = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.08 +printer_notes = Dont remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_ULTIMAKER\nPRINTER_MODEL_ULTIMAKER2 +nozzle_diameter = 0.4 +default_print_profile = 0.20mm NORMAL @ULTIMAKER2 +default_filament_profile = Generic PLA @ULTIMAKER2 +start_gcode = ; Printer_Settings_ID: [printer_settings_id]\n\n; # # # # # # START Header\nG21 ; metric values\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nM107 ; start with the fan off\n\nG28 X0 Y0 Z0 ; move X/Y/Z to endstops\nG1 X1 Y6 F15000 ; move X/Y to start position\nG1 Z35 F9000 ; move Z to start position\n\n; Heat up bed and nozzle\nM190 S{first_layer_bed_temperature[0] - 5} ; wait for bed temperature - 5\nM140 S[first_layer_bed_temperature] ; continue bed heating\nM109 S[first_layer_temperature] ; wait for nozzle temperature\n\nG92 E0 ; zero the extruded length\nG1 F150 E22 ; purge nozzle with filament\nG92 E0 ; zero the extruded length again\nG1 F75 E7 ; additional priming\nG92 E0 ; zero the extruded length again\n\n; # # # # # # END Header +end_gcode = ; # # # # # # START Footer\nG91 ; relative coordinates\n;G1 E-1 F1200 ; retract the filament\nG1 Z+15 X-10 Y-10 E-7 F6000 ; move Z a bit\n; G1 X-10 Y-10 F6000 ; move XY a bit\nG1 E-5.5 F300 ; retract the filament\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nM104 S0 ; extruder heater off\nM140 S0 ; heated bed heater off (if you have it)\nM84 ; disable motors\n; # # # # # # END Footer\n diff --git a/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png b/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..bdcd7dcd9f516bc412a5a86f8176072020ae926b GIT binary patch literal 49277 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 e|BuD+ + + UM2_Plate + + + + image/svg+xml + + UM2_Bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Ultimaker/ultimaker2_bed.stl b/resources/profiles/Ultimaker/ultimaker2_bed.stl new file mode 100644 index 0000000000000000000000000000000000000000..a192d8eb2bf57f0ea91648641abf6ebfc1cfaa7c GIT binary patch literal 3484 zcmbVOJ8l#~6l@Deq+EetvXY(fi7byW!qOTf+Y*p*1|o<&2Y?F@aSaDH(#C6v%*h7J z0f;!jFxA!7@AdS|E@Fb!Q|r~M_v`9CIXZiFa{TV-bar+=pEbv?4^Q9EUcNa!IXs{J z#}{4%eeI9lYC~8xci;YOZkEfd5Uv*?{7Uw!k==E~L`2vL>xD;j7q<(baW1<=Anp`G z=QW~dk8zQq;=jqqM($C_fK8X@+Q<9f0VpGjHMXs=>-2btvVihG!q=kT*x=Q(Xc zm{$nv+_#K4;3QYgo%VL|=+DQ;@_LYLWVN?@@8M>IytF;r5Uc}U+OcQPFTZW#;3mRL z+cU<&87M9~%{r{UAqQtmFK))?y-$4?28e!gZR%C&h3y+f^o@;(9%)(Wt_(9Qv+`cL zMaob$l?dN=*w{YxO12P~I5P8lWt*Y--z?`>UH7|NKMCKzTz1{X1Y+K+#H!ipw}%Mp z6L`wF+HjoH28Z=&3IPs9A_AWHpg@WRz4G@%_P-&>QDsG%L0sK!b-Jj$B}DAZiU@G% zTv_e!f4$E-OkZ^;N)1lE+TDyGhxlT5`yT1zEmB;YhqNnkY(aoSkyHm6Fb~Dz3m^{d zw0fnCrV!*P=8?0qSmi6DyCM$0Phc8H%;Ov7IdWD97Hb)+^{P#KQ27Lc93Ej=p;ta` zKehD2QDf>l#u4n5=de1`q*7daEz|DiTe}UBXPyz#LmA z?$j&uGBuDgKp%nl@YL(o5Ha=|_&UnC+6-xoUYv+Xb<_xIJI|RFE5?z6?X%tr2`bcrK0*YW2yR(O_TGz8S}eUX@-|R{5SQmg3qx z>_weYIC7{zisb)gXdcq5QVpaSRyikvdDIBbV=61fLLH_nW@}4K8O9Ls(s`AYQy*3? zH9)qo#gX@F6d?|eu&fkI^PpbkX~zFS^*nqgK=9wvR90zHQDxF*6gJS{(1)!zwG=`e c;>+8fU{W9CZW;w!|ARB4C8R{i%ky>JUvVaJ7ytkO literal 0 HcmV?d00001 From 9a484d532b453a3f3b6959ed61507e641c16e322 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 3 Nov 2021 22:43:00 +0100 Subject: [PATCH 062/130] Fixed filament_diameter --- resources/profiles/Ultimaker.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/Ultimaker.ini b/resources/profiles/Ultimaker.ini index 3aadf73585..43710dabbf 100644 --- a/resources/profiles/Ultimaker.ini +++ b/resources/profiles/Ultimaker.ini @@ -244,7 +244,7 @@ compatible_printers = extrusion_multiplier = 1 filament_cost = 0 filament_density = 0 -filament_diameter = 1.75 +filament_diameter = 2.85 filament_notes = "" filament_settings_id = "" filament_soluble = 0 From c8ff0de27e4050991fbf820930c4b7d8f0d6f059 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 3 Nov 2021 22:45:28 +0100 Subject: [PATCH 063/130] Updated ABS filament density. --- resources/profiles/Ultimaker.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/Ultimaker.ini b/resources/profiles/Ultimaker.ini index 43710dabbf..363e0dec8a 100644 --- a/resources/profiles/Ultimaker.ini +++ b/resources/profiles/Ultimaker.ini @@ -296,7 +296,7 @@ fan_below_layer_time = 15 filament_colour = #FFF0E0 filament_max_volumetric_speed = 0 filament_type = ABS -filament_density = 1.27 +filament_density = 1.10 first_layer_bed_temperature = 80 bed_temperature = 80 first_layer_temperature = 240 From 7520e2f1933eab7f8ec056c1516ce1dd74a092ef Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 5 Nov 2021 09:41:18 +0100 Subject: [PATCH 064/130] Updated SHA256 in wxWidgets.cmake --- deps/wxWidgets/wxWidgets.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/wxWidgets/wxWidgets.cmake b/deps/wxWidgets/wxWidgets.cmake index a7f5b12e74..c993d89487 100644 --- a/deps/wxWidgets/wxWidgets.cmake +++ b/deps/wxWidgets/wxWidgets.cmake @@ -13,7 +13,7 @@ prusaslicer_add_cmake_project(wxWidgets # GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets" # GIT_TAG tm_cross_compile #${_wx_git_tag} URL https://github.com/prusa3d/wxWidgets/archive/refs/heads/v3.1.4-patched.zip - URL_HASH SHA256=a1e145a083d173cf320c0bd8522c7ee5829052b49b68fe5268ac84f0c576b940 + URL_HASH SHA256=21ed12eb5c215b00999f0374af652be0a6f785df10d18d0dfec8d81ed4abaea3 DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} dep_TIFF dep_JPEG CMAKE_ARGS -DwxBUILD_PRECOMP=ON From aff9e1f7ea5cbaec4e9b259ad375ba73fc667a59 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 1 Nov 2021 16:24:31 +0100 Subject: [PATCH 065/130] MSW_DarkMode: Next Improvements * Refreshed title bar for all Dialogs and MainFrame * Refreshed header of the DataViewCtrl and ListView * Refresh tooltips * Redraw SpinCtrls * Use system menu with is colored in respect to the color mode * Preferences: Added parameter "Use system menu for application" and moved to the "Dark mode" tab with "Enable Dark mode parameter" --- src/libslic3r/AppConfig.cpp | 3 ++ src/slic3r/GUI/BonjourDialog.cpp | 2 +- src/slic3r/GUI/ConfigWizard.cpp | 13 ++++++-- src/slic3r/GUI/GUI_App.cpp | 53 +++++++++++++++++++++++++------- src/slic3r/GUI/GUI_App.hpp | 3 ++ src/slic3r/GUI/Plater.cpp | 4 +++ src/slic3r/GUI/Preferences.cpp | 53 ++++++++++++++++++++++---------- src/slic3r/GUI/Preferences.hpp | 3 ++ src/slic3r/GUI/Search.cpp | 14 ++++++++- src/slic3r/GUI/Search.hpp | 8 +++-- 10 files changed, 123 insertions(+), 33 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index e5af1fa731..b6406bf414 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -182,6 +182,9 @@ void AppConfig::set_defaults() if (get("dark_color_mode").empty()) set("dark_color_mode", "0"); + + if (get("sys_menu_enabled").empty()) + set("sys_menu_enabled", "1"); #endif // _WIN32 // Remove legacy window positions/sizes diff --git a/src/slic3r/GUI/BonjourDialog.cpp b/src/slic3r/GUI/BonjourDialog.cpp index be0e20eb20..516b1ab4a5 100644 --- a/src/slic3r/GUI/BonjourDialog.cpp +++ b/src/slic3r/GUI/BonjourDialog.cpp @@ -53,7 +53,7 @@ struct LifetimeGuard BonjourDialog::BonjourDialog(wxWindow *parent, Slic3r::PrinterTechnology tech) : wxDialog(parent, wxID_ANY, _(L("Network lookup")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) - , list(new wxListView(this, wxID_ANY)) + , list(new wxListView(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSIMPLE_BORDER)) , replies(new ReplySet) , label(new wxStaticText(this, wxID_ANY, "")) , timer(new wxTimer()) diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index cceaff2e2b..b3b00f60c8 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -27,6 +27,10 @@ #include #include +#ifdef _MSW_DARK_MODE +#include +#endif // _MSW_DARK_MODE + #include "libslic3r/Platform.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/Config.hpp" @@ -2796,7 +2800,11 @@ ConfigWizard::ConfigWizard(wxWindow *parent) auto *vsizer = new wxBoxSizer(wxVERTICAL); auto *topsizer = new wxBoxSizer(wxHORIZONTAL); - auto *hline = new wxStaticLine(this); + wxStaticLine* hline = nullptr; +#ifdef _MSW_DARK_MODE + if (!NppDarkMode::IsEnabled()) +#endif //_MSW_DARK_MODE + hline = new wxStaticLine(this); p->btnsizer = new wxBoxSizer(wxHORIZONTAL); // Initially we _do not_ SetScrollRate in order to figure out the overall width of the Wizard without scrolling. @@ -2872,7 +2880,8 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->index->go_to(size_t{0}); vsizer->Add(topsizer, 1, wxEXPAND | wxALL, DIALOG_MARGIN); - vsizer->Add(hline, 0, wxEXPAND); + if (hline) + vsizer->Add(hline, 0, wxEXPAND); vsizer->Add(p->btnsizer, 0, wxEXPAND | wxALL, DIALOG_MARGIN); SetSizer(vsizer); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index cd286e45ae..bab07b4664 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3,6 +3,7 @@ #include "GUI_Init.hpp" #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" +#include "GUI_Factories.hpp" #include "format.hpp" #include "I18N.hpp" @@ -1020,11 +1021,7 @@ bool GUI_App::on_init_inner() wxInitAllImageHandlers(); #ifdef _MSW_DARK_MODE - if (bool dark_mode = app_config->get("dark_color_mode") == "1") { - NppDarkMode::InitDarkMode(); - if (dark_mode != NppDarkMode::IsDarkMode()) - NppDarkMode::SetDarkMode(dark_mode); - } + NppDarkMode::InitDarkMode(app_config->get("dark_color_mode") == "1", app_config->get("sys_menu_enabled") == "1"); #endif SplashScreen* scrn = nullptr; if (app_config->get("show_splash_screen") == "1") { @@ -1347,10 +1344,9 @@ void GUI_App::UpdateDVCDarkUI(wxDataViewCtrl* dvc, bool highlited/* = false*/) { #ifdef _WIN32 UpdateDarkUI(dvc, highlited ? dark_mode() : false); - wxItemAttr attr(dark_mode() ? m_color_highlight_default : m_color_label_default, - m_color_window_default, - m_normal_font); - dvc->SetHeaderAttr(attr); +#ifdef _MSW_DARK_MODE + dvc->RefreshHeaderDarkMode(&m_normal_font); +#endif //_MSW_DARK_MODE if (dvc->HasFlag(wxDV_ROW_LINES)) dvc->SetAlternateRowColour(m_color_highlight_default); if (dvc->GetBorder() != wxBORDER_SIMPLE) @@ -1574,12 +1570,44 @@ void fatal_error(wxWindow* parent) } #ifdef _WIN32 + +#ifdef _MSW_DARK_MODE +static void update_scrolls(wxWindow* window) +{ + wxWindowList::compatibility_iterator node = window->GetChildren().GetFirst(); + while (node) + { + wxWindow* win = node->GetData(); + if (dynamic_cast(win) || + dynamic_cast(win) || + dynamic_cast(win)) + NppDarkMode::SetDarkExplorerTheme(win->GetHWND()); + + update_scrolls(win); + node = node->GetNext(); + } +} +#endif //_MSW_DARK_MODE + + +#ifdef _MSW_DARK_MODE +void GUI_App::force_menu_update() +{ + NppDarkMode::SetSystemMenuForApp(app_config->get("sys_menu_enabled") == "1"); +} +#endif //_MSW_DARK_MODE + void GUI_App::force_colors_update() { +#ifdef _MSW_DARK_MODE NppDarkMode::SetDarkMode(app_config->get("dark_color_mode") == "1"); + if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl()) + NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND); + NppDarkMode::SetDarkTitleBar(mainframe->GetHWND()); +#endif //_MSW_DARK_MODE m_force_colors_update = true; } -#endif +#endif //_WIN32 // Called after the Preferences dialog is closed and the program settings are saved. // Update the UI based on the current preferences. @@ -1587,11 +1615,14 @@ void GUI_App::update_ui_from_settings() { update_label_colours(); #ifdef _WIN32 - // Upadte UU colors before Update UI from settings + // Upadte UI colors before Update UI from settings if (m_force_colors_update) { m_force_colors_update = false; mainframe->force_color_changed(); mainframe->diff_dialog.force_color_changed(); +#ifdef _MSW_DARK_MODE + update_scrolls(mainframe); +#endif //_MSW_DARK_MODE } #endif mainframe->update_ui_from_settings(); diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 90a8776a67..1d281cafef 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -210,6 +210,9 @@ public: const wxColour& get_color_hovered_btn_label() { return m_color_hovered_btn_label; } const wxColour& get_color_selected_btn_bg() { return m_color_selected_btn_bg; } void force_colors_update(); +#ifdef _MSW_DARK_MODE + void force_menu_update(); +#endif //_MSW_DARK_MODE #endif const wxFont& small_font() { return m_small_font; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 710a6ffd25..eb64fb08ca 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1087,6 +1087,8 @@ void Sidebar::msw_rescale() p->btn_reslice ->SetMinSize(wxSize(-1, scaled_height)); p->scrolled->Layout(); + + p->searcher.dlg_msw_rescale(); } void Sidebar::sys_color_changed() @@ -1125,6 +1127,8 @@ void Sidebar::sys_color_changed() p->btn_export_gcode_removable->msw_rescale(); p->scrolled->Layout(); + + p->searcher.dlg_sys_color_changed(); } void Sidebar::search() diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 3748e2251f..c73fd40644 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -350,8 +350,6 @@ void PreferencesDialog::build(size_t selected_tab) tabs->Layout(); this->layout(); } - - }; def.label = L("Sequential slider applied only to top layer"); @@ -395,16 +393,6 @@ void PreferencesDialog::build(size_t selected_tab) m_optgroup_gui->append_single_option_line(option); #ifdef _MSW_DARK_MODE - } - def.label = L("Use Dark color mode (experimental)"); - def.type = coBool; - def.tooltip = L("If enabled, UI will use Dark mode colors. " - "If disabled, old UI will be used."); - def.set_default_value(new ConfigOptionBool{ app_config->get("dark_color_mode") == "1" }); - option = Option(def, "dark_color_mode"); - m_optgroup_gui->append_single_option_line(option); - - if (is_editor) { def.label = L("Set settings tabs as menu items (experimental)"); def.type = coBool; def.tooltip = L("If enabled, Settings Tabs will be placed as menu items. " @@ -484,6 +472,36 @@ void PreferencesDialog::build(size_t selected_tab) } #endif // ENABLE_ENVIRONMENT_MAP +#ifdef _WIN32 + // Add "Dark Mode" tab + if (is_editor) { + // Add "Dark Mode" tab + m_optgroup_dark_mode = create_options_tab(_L("Dark mode (experimental)"), tabs); + m_optgroup_dark_mode->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + m_values[opt_key] = boost::any_cast(value) ? "1" : "0"; + }; + + def.label = L("Enable dark mode"); + def.type = coBool; + def.tooltip = L("If enabled, UI will use Dark mode colors. " + "If disabled, old UI will be used."); + def.set_default_value(new ConfigOptionBool{ app_config->get("dark_color_mode") == "1" }); + option = Option(def, "dark_color_mode"); + m_optgroup_dark_mode->append_single_option_line(option); + + def.label = L("Use system menu for application"); + def.type = coBool; + def.tooltip = L("If enabled, application will use standart Windows system menu,\n" + "but on some combination od display scales it can looks ugly. " + "If disabled, old UI will be used."); + def.set_default_value(new ConfigOptionBool{ app_config->get("sys_menu_enabled") == "1" }); + option = Option(def, "sys_menu_enabled"); + m_optgroup_dark_mode->append_single_option_line(option); + + activate_options_tab(m_optgroup_dark_mode); + } +#endif //_WIN32 + // update alignment of the controls for all tabs update_ctrls_alignment(); @@ -525,7 +543,7 @@ void PreferencesDialog::accept(wxEvent&) // if (m_values.find("no_defaults") != m_values.end() // warning_catcher(this, wxString::Format(_L("You need to restart %s to make the changes effective."), SLIC3R_APP_NAME)); - std::vector options_to_recreate_GUI = { "no_defaults", "tabs_as_menu" }; + std::vector options_to_recreate_GUI = { "no_defaults", "tabs_as_menu", "sys_menu_enabled" }; for (const std::string& option : options_to_recreate_GUI) { if (m_values.find(option) != m_values.end()) { @@ -588,11 +606,14 @@ void PreferencesDialog::accept(wxEvent&) EndModal(wxID_OK); -#ifdef _MSW_DARK_MODE +#ifdef _WIN32 if (m_values.find("dark_color_mode") != m_values.end()) wxGetApp().force_colors_update(); -#endif - +#ifdef _MSW_DARK_MODE + if (m_values.find("sys_menu_enabled") != m_values.end()) + wxGetApp().force_menu_update(); +#endif //_MSW_DARK_MODE +#endif // _WIN32 if (m_settings_layout_changed) ;// application will be recreated after Preference dialog will be destroyed else diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 01f116760c..210b04d4fd 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -29,6 +29,9 @@ class PreferencesDialog : public DPIDialog std::shared_ptr m_optgroup_general; std::shared_ptr m_optgroup_camera; std::shared_ptr m_optgroup_gui; +#ifdef _WIN32 + std::shared_ptr m_optgroup_dark_mode; +#endif //_WIN32 #if ENABLE_ENVIRONMENT_MAP std::shared_ptr m_optgroup_render; #endif // ENABLE_ENVIRONMENT_MAP diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 1e37dc3729..add5dc0024 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -401,6 +401,18 @@ void OptionsSearcher::show_dialog() search_dialog->Popup(); } +void OptionsSearcher::dlg_sys_color_changed() +{ + if (search_dialog) + search_dialog->on_sys_color_changed(); +} + +void OptionsSearcher::dlg_msw_rescale() +{ + if (search_dialog) + search_dialog->msw_rescale(); +} + void OptionsSearcher::add_key(const std::string& opt_key, Preset::Type type, const wxString& group, const wxString& category) { groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category}; @@ -666,7 +678,7 @@ void SearchDialog::OnLeftDown(wxMouseEvent& event) ProcessSelection(search_list->GetSelection()); } -void SearchDialog::on_dpi_changed(const wxRect& suggested_rect) +void SearchDialog::msw_rescale() { const int& em = em_unit(); diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index 19de58f961..d5add92629 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -138,6 +138,8 @@ public: void sort_options_by_label() { sort_options(); } void show_dialog(); + void dlg_sys_color_changed(); + void dlg_msw_rescale(); }; @@ -180,9 +182,11 @@ public: void Popup(wxPoint position = wxDefaultPosition); void ProcessSelection(wxDataViewItem selection); -protected: - void on_dpi_changed(const wxRect& suggested_rect) override; + void msw_rescale(); void on_sys_color_changed() override; + +protected: + void on_dpi_changed(const wxRect& suggested_rect) override { msw_rescale(); } }; From 8b150ae2352ea82d1df3835ec67128cddd9f8789 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Fri, 5 Nov 2021 13:07:23 +0100 Subject: [PATCH 066/130] Initial Voron bundle --- resources/profiles/Voron.idx | 2 + resources/profiles/Voron.ini | 1558 +++ .../profiles/Voron/Voron_v0_120_thumbnail.png | Bin 0 -> 59676 bytes .../Voron_v1_250_afterburner_thumbnail.png | Bin 0 -> 64932 bytes .../Voron_v1_300_afterburner_thumbnail.png | Bin 0 -> 64932 bytes .../Voron_v2_250_afterburner_thumbnail.png | Bin 0 -> 51542 bytes .../profiles/Voron/Voron_v2_250_thumbnail.png | Bin 0 -> 51542 bytes .../Voron_v2_300_afterburner_thumbnail.png | Bin 0 -> 51542 bytes .../profiles/Voron/Voron_v2_300_thumbnail.png | Bin 0 -> 51542 bytes .../Voron_v2_350_afterburner_thumbnail.png | Bin 0 -> 51542 bytes .../profiles/Voron/Voron_v2_350_thumbnail.png | Bin 0 -> 51542 bytes .../profiles/Voron/bedtexture-v0-120.png | Bin 0 -> 291049 bytes .../profiles/Voron/bedtexture-v1-250.png | Bin 0 -> 521594 bytes .../profiles/Voron/bedtexture-v1-300.png | Bin 0 -> 223040 bytes .../profiles/Voron/bedtexture-v2-250.png | Bin 0 -> 521594 bytes .../profiles/Voron/bedtexture-v2-300.png | Bin 0 -> 223040 bytes .../profiles/Voron/bedtexture-v2-350.png | Bin 0 -> 256895 bytes resources/profiles/Voron/printbed-v0-120.stl | Bin 0 -> 32284 bytes resources/profiles/Voron/printbed-v1-250.stl | Bin 0 -> 44484 bytes resources/profiles/Voron/printbed-v1-300.stl | Bin 0 -> 44484 bytes resources/profiles/Voron/printbed-v2-250.stl | 9858 +++++++++++++++++ resources/profiles/Voron/printbed-v2-300.stl | 9858 +++++++++++++++++ resources/profiles/Voron/printbed-v2-350.stl | 9858 +++++++++++++++++ 23 files changed, 31134 insertions(+) create mode 100644 resources/profiles/Voron.idx create mode 100644 resources/profiles/Voron.ini create mode 100644 resources/profiles/Voron/Voron_v0_120_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_250_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_300_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png create mode 100644 resources/profiles/Voron/Voron_v2_350_thumbnail.png create mode 100644 resources/profiles/Voron/bedtexture-v0-120.png create mode 100644 resources/profiles/Voron/bedtexture-v1-250.png create mode 100644 resources/profiles/Voron/bedtexture-v1-300.png create mode 100644 resources/profiles/Voron/bedtexture-v2-250.png create mode 100644 resources/profiles/Voron/bedtexture-v2-300.png create mode 100644 resources/profiles/Voron/bedtexture-v2-350.png create mode 100644 resources/profiles/Voron/printbed-v0-120.stl create mode 100644 resources/profiles/Voron/printbed-v1-250.stl create mode 100644 resources/profiles/Voron/printbed-v1-300.stl create mode 100644 resources/profiles/Voron/printbed-v2-250.stl create mode 100644 resources/profiles/Voron/printbed-v2-300.stl create mode 100644 resources/profiles/Voron/printbed-v2-350.stl diff --git a/resources/profiles/Voron.idx b/resources/profiles/Voron.idx new file mode 100644 index 0000000000..a593d2fb4b --- /dev/null +++ b/resources/profiles/Voron.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Voron.ini b/resources/profiles/Voron.ini new file mode 100644 index 0000000000..fb024870ac --- /dev/null +++ b/resources/profiles/Voron.ini @@ -0,0 +1,1558 @@ +# Print profiles for the Voron printers. +# Source: https://github.com/slic3r/slic3r-profiles +# Modified for PrusaSlicer + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Voron +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Voron/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. + +# Printer model name will be shown by the installation wizard. + +[printer_model:Voron_v2_250_afterburner] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300_afterburner] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350_afterburner] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_250] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_250_afterburner] +name = Voron v1 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-250.stl +bed_texture = bedtexture-v1-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_300_afterburner] +name = Voron v1 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-300.stl +bed_texture = bedtexture-v1-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v0_120] +name = Voron Zero 120mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v0 +bed_model = printbed-v0-120.stl +bed_texture = bedtexture-v0-120.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface + +[printer:*0.25nozzle*] +nozzle_diameter = 0.25 +max_layer_height = 0.175 +min_layer_height = 0.025 +retract_lift_above = 0.15 +printer_variant = 0.25 +default_print_profile = 0.10mm 0.25nozzle + +[printer:*0.3nozzle*] +nozzle_diameter = 0.3 +max_layer_height = 0.225 +min_layer_height = 0.025 +retract_lift_above = 0.2 +printer_variant = 0.3 +default_print_profile = 0.10mm 0.3nozzle + +[printer:*0.4nozzle*] +nozzle_diameter = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.0375 +retract_lift_above = 0.2 +printer_variant = 0.4 +default_print_profile = 0.15mm 0.4nozzle + +[printer:*0.5nozzle*] +nozzle_diameter = 0.5 +max_layer_height = 0.375 +min_layer_height = 0.05 +retract_lift_above = 0.2 +printer_variant = 0.5 +default_print_profile = 0.2mm 0.5nozzle + +[printer:*0.6nozzle*] +nozzle_diameter = 0.6 +max_layer_height = 0.45 +min_layer_height = 0.075 +retract_lift_above = 0.3 +printer_variant = 0.6 +default_print_profile = 0.2mm 0.6nozzle + +[printer:*0.8nozzle*] +nozzle_diameter = 0.8 +max_layer_height = 0.6 +min_layer_height = 0.0875 +retract_lift_above = 0.4 +printer_variant = 0.8 +default_print_profile = 0.3mm 0.8nozzle + +[printer:*1.0nozzle*] +nozzle_diameter = 1.0 +max_layer_height = 0.75 +min_layer_height = 0.1 +retract_lift_above = 0.4 +printer_variant = 1.0 +default_print_profile = 0.4mm 1.0nozzle + +[printer:*1.2nozzle*] +nozzle_diameter = 1.2 +max_layer_height = 0.9 +min_layer_height = 0.125 +retract_lift_above = 0.4 +printer_variant = 1.2 +default_print_profile = 0.4mm 1.2nozzle + + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 25 +end_gcode = print_end ;end script from macro +extruder_colour = #FFE3CA +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 9000 +machine_max_acceleration_y = 9000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 10 +machine_max_jerk_y = 10 +machine_max_jerk_z = 0.2 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +machine_limits_usage = time_estimate_only +remaining_times = 0 +silent_mode = 0 +printer_notes = voron +printer_settings_id = +retract_before_travel = 3 +retract_before_wipe = 0% +retract_layer_change = 0 +retract_length = 5.8 +retract_length_toolchange = 10 +retract_lift = 0.4 +retract_lift_above = 0 +retract_lift_below = 500 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +single_extruder_multi_material = 0 +start_gcode = ; M190 S0\n; M109 S0 ; uncomment to remove set&wait temp gcode added automatically after this start gcode\nprint_start EXTRUDER=[first_layer_temperature[initial_tool]] BED=[first_layer_bed_temperature] +thumbnails = 64x64,400x300 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 +default_filament_profile = Basic PLA @VORON + +[printer:*volcano*] +retract_length = 6.8 + +[printer:*volcano_afterburner*] +retract_length = 5.5 + +[printer:*afterburner*] +retract_length = 0.75 +deretract_speed = 30 +retract_speed = 50 + +[printer:*zero*] +retract_length = 2.0 +deretract_speed = 30 +retract_speed = 50 + +[printer:*Voron_v2_250*] +inherits = *common* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 250 +printer_model = Voron_v2_250 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_300*] +inherits = *common* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 300 +printer_model = Voron_v2_300 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_350*] +inherits = *common* +bed_shape = 0x0,350x0,350x350,0x350 +max_print_height = 350 +printer_model = Voron_v2_350 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_250_afterburner*] +inherits = *Voron_v2_250*; *afterburner* +printer_model = Voron_v2_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_300_afterburner*] +inherits = *Voron_v2_300*; *afterburner* +printer_model = Voron_v2_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_350_afterburner*] +inherits = *Voron_v2_350*; *afterburner* +printer_model = Voron_v2_350_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_250_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 230 +printer_model = Voron_v1_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_300_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 230 +printer_model = Voron_v1_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v0_120*] +inherits = *common* +bed_shape = 0x0,120x0,120x120,0x120 +max_print_height = 120 +printer_model = Voron_v0_120 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:Voron_v2_250 0.25 nozzle] +inherits = *Voron_v2_250*; *0.25nozzle* + +[printer:Voron_v2_250 0.3 nozzle] +inherits = *Voron_v2_250*; *0.3nozzle* + +[printer:Voron_v2_250 0.4 nozzle] +inherits = *Voron_v2_250*; *0.4nozzle* + +[printer:Voron_v2_250 0.5 nozzle] +inherits = *Voron_v2_250*; *0.5nozzle* + +[printer:Voron_v2_250 0.6 nozzle] +inherits = *Voron_v2_250*; *0.6nozzle* + +[printer:Voron_v2_250 0.8 nozzle] +inherits = *Voron_v2_250*; *0.8nozzle* + +[printer:Voron_v2_250 0.6 volcano] +inherits = *Voron_v2_250*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 0.8 volcano] +inherits = *Voron_v2_250*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.0 volcano] +inherits = *Voron_v2_250*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.2 volcano] +inherits = *Voron_v2_250*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.25 nozzle] +inherits = *Voron_v2_300*; *0.25nozzle* + +[printer:Voron_v2_300 0.3 nozzle] +inherits = *Voron_v2_300*; *0.3nozzle* + +[printer:Voron_v2_300 0.4 nozzle] +inherits = *Voron_v2_300*; *0.4nozzle* + +[printer:Voron_v2_300 0.5 nozzle] +inherits = *Voron_v2_300*; *0.5nozzle* + +[printer:Voron_v2_300 0.6 nozzle] +inherits = *Voron_v2_300*; *0.6nozzle* + +[printer:Voron_v2_300 0.8 nozzle] +inherits = *Voron_v2_300*; *0.8nozzle* + +[printer:Voron_v2_300 0.6 volcano] +inherits = *Voron_v2_300*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.8 volcano] +inherits = *Voron_v2_300*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.0 volcano] +inherits = *Voron_v2_300*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.2 volcano] +inherits = *Voron_v2_300*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 0.25 nozzle] +inherits = *Voron_v2_350*; *0.25nozzle* + +[printer:Voron_v2_350 0.3 nozzle] +inherits = *Voron_v2_350*; *0.3nozzle* + +[printer:Voron_v2_350 0.4 nozzle] +inherits = *Voron_v2_350*; *0.4nozzle* + +[printer:Voron_v2_350 0.5 nozzle] +inherits = *Voron_v2_350*; *0.5nozzle* + +[printer:Voron_v2_350 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle* + +[printer:Voron_v2_350 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle* + +[printer:Voron_v2_350 volcano 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.0 nozzle] +inherits = *Voron_v2_350*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.2 nozzle] +inherits = *Voron_v2_350*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v1_250_afterburner 0.25 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.25nozzle* + +[printer:Voron_v1_250_afterburner 0.3 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.3nozzle* + +[printer:Voron_v1_250_afterburner 0.4 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.4nozzle* + +[printer:Voron_v1_250_afterburner 0.5 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.5nozzle* + +[printer:Voron_v1_250_afterburner 0.6 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.6nozzle* + +[printer:Voron_v1_250_afterburner 0.8 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.8nozzle* + +[printer:Voron_v1_300_afterburner 0.25 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.25nozzle* + +[printer:Voron_v1_300_afterburner 0.3 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.3nozzle* + +[printer:Voron_v1_300_afterburner 0.4 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.4nozzle* + +[printer:Voron_v1_300_afterburner 0.5 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.5nozzle* + +[printer:Voron_v1_300_afterburner 0.6 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.6nozzle* + +[printer:Voron_v1_300_afterburner 0.8 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.25 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.25nozzle* + +[printer:Voron_v2_250_afterburner 0.3 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.3nozzle* + +[printer:Voron_v2_250_afterburner 0.4 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.4nozzle* + +[printer:Voron_v2_250_afterburner 0.5 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.5nozzle* + +[printer:Voron_v2_250_afterburner 0.6 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle* + +[printer:Voron_v2_250_afterburner 0.8 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.6 volcano] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 0.8 volcano] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.0 volcano] +inherits = *Voron_v2_250_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.2 volcano] +inherits = *Voron_v2_250_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.25 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.25nozzle* + +[printer:Voron_v2_300_afterburner 0.3 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.3nozzle* + +[printer:Voron_v2_300_afterburner 0.4 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.4nozzle* + +[printer:Voron_v2_300_afterburner 0.5 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.5nozzle* + +[printer:Voron_v2_300_afterburner 0.6 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle* + +[printer:Voron_v2_300_afterburner 0.8 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_300_afterburner 0.6 volcano] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.8 volcano] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.0 volcano] +inherits = *Voron_v2_300_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.2 volcano] +inherits = *Voron_v2_300_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner 0.25 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.25nozzle* + +[printer:Voron_v2_350_afterburner 0.3 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.3nozzle* + +[printer:Voron_v2_350_afterburner 0.4 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.4nozzle* + +[printer:Voron_v2_350_afterburner 0.5 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.5nozzle* + +[printer:Voron_v2_350_afterburner 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle* + +[printer:Voron_v2_350_afterburner 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle* + +[printer:Voron_v2_350_afterburner volcano 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.0 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.2 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 0.25 nozzle] +inherits = *Voron_v0_120*; *0.25nozzle*; *zero* + +[printer:Voron_v0 0.3 nozzle] +inherits = *Voron_v0_120*; *0.3nozzle*; *zero* + +[printer:Voron_v0 0.4 nozzle] +inherits = *Voron_v0_120*; *0.4nozzle*; *zero* + +[printer:Voron_v0 0.5 nozzle] +inherits = *Voron_v0_120*; *0.5nozzle*; *zero* + +[printer:Voron_v0 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *zero* + +[printer:Voron_v0 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *zero* + +[printer:Voron_v0 volcano 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *volcano*; *zero* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *volcano*; *zero* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.0 nozzle] +inherits = *Voron_v0_120*; *1.0nozzle*; *volcano*; *zero* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.2 nozzle] +inherits = *Voron_v0_120*; *1.2nozzle*; *volcano*; *zero* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + + +# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. +# All other print presets will derive from the *common* print preset. +[print:*common*] +avoid_crossing_perimeters = 0 +bridge_acceleration = 3000 +bridge_angle = 0 +bridge_flow_ratio = 0.9 +bottom_fill_pattern = monotonic +bridge_speed = 60 +brim_inside_holes = 0 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +complete_objects = 0 +default_acceleration = 3000 +dont_support_bridges = 1 +ensure_vertical_shell_thickness = 1 +external_perimeters_first = 0 +external_perimeter_speed = 40 +extra_perimeters = 0 +extra_perimeters_overhangs = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 70 +elefant_foot_compensation = 0.1 +fill_angle = 45 +fill_density = 15% +fill_pattern = gyroid +first_layer_acceleration = 1000 +first_layer_height = 75% +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 4000 +infill_extruder = 1 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 125 +interface_shells = 0 +label_printed_objects = 1 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 20 +notes = TODO: check the size of the extruder and the y-bar clearance. Optimize & test supports. +only_one_perimeter_top = 1 +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +perimeters = 3 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_speed = 100 +post_process = +print_settings_id = +raft_layers = 0 +seam_position = nearest +single_extruder_multi_material_priming = 1 +skirts = 3 +skirt_distance = 3 +skirt_height = 1 +small_perimeter_speed = 40 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_speed = 120 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_extruder = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_enforce_layers = 0 +support_material_contact_distance = 0.15 +support_material_interface_contact_loops = 0 +support_material_interface_layers = 1 +support_material_interface_spacing = 0 +support_material_interface_speed = 70 +support_material_pattern = rectilinear +support_material_interface_extruder = 0 +support_material_solid_first_layer = 1 +support_material_spacing = 1.5 +support_material_speed = 90 +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.6 +thin_perimeters = 1 +thin_walls = 0 +top_fill_pattern = monotonic +top_solid_infill_speed = 50 +travel_speed = 300 +wipe_tower = 1 +wipe_tower_bridging = 10 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 +extrusion_width = 0 +external_perimeter_extrusion_width = 0 +first_layer_extrusion_width = 0 +infill_extrusion_width = 0 +perimeter_extrusion_width = 0 +solid_infill_extrusion_width = 0 +top_infill_extrusion_width = 0 +support_material_extrusion_width = 0 +infill_anchor = 0 + +[print:*zero_toolhead*] +extruder_clearance_height = 38 +extruder_clearance_radius = 34 + +# Print parameters common to a 0.25mm diameter nozzle. +[print:*0.25nozzle*] +perimeters = 5 +support_material_interface_spacing = 0.1 +support_material_spacing = 1 +first_layer_height = 0.15 +extrusion_width = 0.27 +external_perimeter_extrusion_width = 0.26 +first_layer_extrusion_width = 0.35 +infill_extrusion_width = 0.27 +perimeter_extrusion_width = 0.27 +solid_infill_extrusion_width = 0.27 +top_infill_extrusion_width = 0.27 +support_material_extrusion_width = 0.27 +elefant_foot_compensation = 0 + +# Print parameters common to a 0.3mm diameter nozzle. +[print:*0.3nozzle*] +perimeters = 4 +support_material_interface_spacing = 0.15 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.33 +external_perimeter_extrusion_width = 0.31 +first_layer_extrusion_width = 0.42 +infill_extrusion_width = 0.33 +perimeter_extrusion_width = 0.33 +solid_infill_extrusion_width = 0.33 +top_infill_extrusion_width = 0.33 +support_material_extrusion_width = 0.33 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.4nozzle*] +perimeters = 3 +support_material_interface_spacing = 0.2 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.44 +external_perimeter_extrusion_width = 0.42 +first_layer_extrusion_width = 0.56 +infill_extrusion_width = 0.44 +perimeter_extrusion_width = 0.44 +solid_infill_extrusion_width = 0.44 +top_infill_extrusion_width = 0.44 +support_material_extrusion_width = 0.44 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.5nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.2 +support_material_spacing = 1.1 +first_layer_height = 0.2 +extrusion_width = 0.55 +external_perimeter_extrusion_width = 0.52 +first_layer_extrusion_width = 0.7 +infill_extrusion_width = 0.55 +perimeter_extrusion_width = 0.55 +solid_infill_extrusion_width = 0.55 +top_infill_extrusion_width = 0.55 +support_material_extrusion_width = 0.55 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.6nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.3 +extrusion_width = 0.66 +external_perimeter_extrusion_width = 0.63 +first_layer_extrusion_width = 0.84 +infill_extrusion_width = 0.66 +perimeter_extrusion_width = 0.66 +solid_infill_extrusion_width = 0.66 +top_infill_extrusion_width = 0.66 +support_material_extrusion_width = 0.66 + +# Print parameters common to a 0.8mm diameter nozzle. +[print:*0.8nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.4 +extrusion_width = 0.88 +external_perimeter_extrusion_width = 0.84 +first_layer_extrusion_width = 1.12 +infill_extrusion_width = 0.88 +perimeter_extrusion_width = 0.88 +solid_infill_extrusion_width = 0.88 +top_infill_extrusion_width = 0.88 +support_material_extrusion_width = 0.88 + +[print:*1.0nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.4 +support_material_spacing = 1.4 +first_layer_height = 0.4 +extrusion_width = 1.1 +external_perimeter_extrusion_width = 1.05 +first_layer_extrusion_width = 1.4 +infill_extrusion_width = 1.1 +perimeter_extrusion_width = 1.1 +solid_infill_extrusion_width = 1.1 +top_infill_extrusion_width = 1.1 +support_material_extrusion_width = 1.1 + +[print:*1.2nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.5 +support_material_spacing = 1.6 +first_layer_height = 0.4 +extrusion_width = 1.32 +external_perimeter_extrusion_width = 1.26 +first_layer_extrusion_width = 1.68 +infill_extrusion_width = 1.32 +perimeter_extrusion_width = 1.32 +solid_infill_extrusion_width = 1.32 +top_infill_extrusion_width = 1.32 +support_material_extrusion_width = 1.32 + +[print:*0.05mm*] +inherits = *common* +bottom_solid_layers = 11 +top_solid_layers = 12 +layer_height = 0.05 +bridge_flow_ratio = 0.5 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 100 +perimeter_speed = 70 +external_perimeter_speed = 30 +solid_infill_speed = 60 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.10mm*] +inherits = *common* +bottom_solid_layers = 8 +top_solid_layers = 9 +layer_height = 0.1 +bridge_flow_ratio = 0.6 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 200 +perimeter_speed = 85 +external_perimeter_speed = 35 +solid_infill_speed = 80 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.15mm*] +inherits = *common* +bottom_solid_layers = 6 +top_solid_layers = 7 +layer_height = 0.15 +bridge_flow_ratio = 0.7 +max_print_speed = 250 +solid_infill_speed = 100 + +[print:*0.2mm*] +inherits = *common* +bottom_solid_layers = 5 +top_solid_layers = 6 +layer_height = 0.2 +bridge_flow_ratio = 0.8 + +[print:*0.25mm*] +inherits = *common* +bottom_solid_layers = 4 +top_solid_layers = 5 +layer_height = 0.25 +bridge_flow_ratio = 0.85 + +[print:*0.3mm*] +inherits = *common* +bottom_solid_layers = 3 +top_solid_layers = 4 +layer_height = 0.3 +bridge_flow_ratio = 0.9 + +[print:*0.4mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.4 +bridge_flow_ratio = 0.9 + +[print:*0.6mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.6 +bridge_flow_ratio = 0.9 + +[print:*0.8mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.8 +bridge_flow_ratio = 0.9 + +[print:0.05mm 0.25nozzle V2] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V2] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V2] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V2] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V1] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V1] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V1] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V1] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V0] +inherits = *0.05mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V0] +inherits = *0.05mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V0] +inherits = *0.05mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V0] +inherits = *0.05mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.25nozzle V2] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V2] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V2] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V2] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V2] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V2] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V1] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V1] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V1] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V1] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V1] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V1] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V0] +inherits = *0.10mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V0] +inherits = *0.10mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V0] +inherits = *0.10mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V0] +inherits = *0.10mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V0] +inherits = *0.10mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V0] +inherits = *0.10mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V2] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V2] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V2] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V2] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V2] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V2] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V2] +inherits = *0.15mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V2] +inherits = *0.15mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.15mm 0.25nozzle V1] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V1] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V1] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V1] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V1] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V1] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V0] +inherits = *0.15mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V0] +inherits = *0.15mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V0] +inherits = *0.15mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V0] +inherits = *0.15mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V0] +inherits = *0.15mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V0] +inherits = *0.15mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V0] +inherits = *0.15mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V0] +inherits = *0.15mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.2mm 0.3nozzle V2] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V2] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V2] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V2] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V2] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V2] +inherits = *0.2mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V2] +inherits = *0.2mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.2mm 0.25nozzle V1] +inherits = *0.2mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.2mm 0.3nozzle V1] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V1] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V1] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V1] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V1] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 0.3nozzle V0] +inherits = *0.2mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V0] +inherits = *0.2mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V0] +inherits = *0.2mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V0] +inherits = *0.2mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V0] +inherits = *0.2mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V0] +inherits = *0.2mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V0] +inherits = *0.2mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.3mm 0.4nozzle V2] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V2] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V2] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V2] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V2] +inherits = *0.3mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V2] +inherits = *0.3mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.3mm 0.25nozzle V1] +inherits = *0.3mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.3mm 0.3nozzle V1] +inherits = *0.3mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.3mm 0.4nozzle V1] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V1] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V1] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V1] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 0.4nozzle V0] +inherits = *0.3mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V0] +inherits = *0.3mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V0] +inherits = *0.3mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V0] +inherits = *0.3mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V0] +inherits = *0.3mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V0] +inherits = *0.3mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.4mm 0.6nozzle V2] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V2] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V2] +inherits = *0.4mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V2] +inherits = *0.4mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.4mm 0.25nozzle V1] +inherits = *0.4mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.4mm 0.3nozzle V1] +inherits = *0.4mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.4mm 0.4nozzle V1] +inherits = *0.4mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.4mm 0.5nozzle V1] +inherits = *0.4mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.4mm 0.6nozzle V1] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V1] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 0.6nozzle V0] +inherits = *0.4mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V0] +inherits = *0.4mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V0] +inherits = *0.4mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V0] +inherits = *0.4mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V2] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V2] +inherits = *0.6mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V2] +inherits = *0.6mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_2.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V1] +inherits = *0.6mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V0] +inherits = *0.6mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V0] +inherits = *0.6mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V0] +inherits = *0.6mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V2] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V1] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V0] +inherits = *0.8mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[filament:*common*] +cooling = 1 +compatible_printers = +compatible_printers_condition = +end_filament_gcode = "" +extrusion_multiplier = 1 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_load_time = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_notes = "" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_settings_id = "" +filament_soluble = 0 +filament_toolchange_delay = 0 +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +min_print_speed = 15 +slowdown_below_layer_time = 20 +start_filament_gcode = "" + + +[filament:*BasicPLA*] +inherits = *common* +bed_temperature = 55 +fan_below_layer_time = 100 +filament_colour = #FF3232 +filament_type = PLA +filament_density = 1.24 +filament_cost = 20 +first_layer_bed_temperature = 55 +first_layer_temperature = 215 +disable_fan_first_layers = 1 +fan_always_on = 1 +max_fan_speed = 100 +min_fan_speed = 100 +bridge_fan_speed = 100 +temperature = 205 + +[filament:Basic PLA @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 13 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PLA VOLCANO @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 20 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicPET*] +inherits = *common* +bed_temperature = 70 +cooling = 0 +disable_fan_first_layers = 2 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_type = PET +filament_density = 1.27 +filament_cost = 30 +first_layer_bed_temperature =70 +first_layer_temperature = 240 +fan_always_on = 1 +max_fan_speed = 30 +min_fan_speed = 20 +bridge_fan_speed = 100 +temperature = 245 + +[filament:Basic PET @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 8 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PET VOLCANO @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 14 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicABS*] +inherits = *common* +bed_temperature = 90 +cooling = 0 +disable_fan_first_layers = 3 +fan_below_layer_time = 20 +filament_colour = #3A80CA +filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_type = ABS +filament_density = 1.04 +filament_cost = 20 +first_layer_bed_temperature = 100 +first_layer_temperature = 250 +fan_always_on = 0 +max_fan_speed = 0 +min_fan_speed = 0 +bridge_fan_speed = 30 +slowdown_below_layer_time = 15 +temperature = 250 + +[filament:Basic ABS @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic ABS VOLCANO @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*kvpABS*] +inherits = *BasicABS* +bed_temperature = 105 +cooling = 1 +disable_fan_first_layers = 5 +filament_colour = #FFFF00 +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_density = 1.05 +filament_cost = 22 +first_layer_bed_temperature = 110 +first_layer_temperature = 240 +fan_always_on = 1 +fan_below_layer_time = 45 +max_fan_speed = 30 +min_fan_speed = 15 +bridge_fan_speed = 30 +temperature = 235 + +[filament:KVP ABS @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:KVP ABS VOLCANO @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + diff --git a/resources/profiles/Voron/Voron_v0_120_thumbnail.png b/resources/profiles/Voron/Voron_v0_120_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..b00586b6f6a93d1997af23f257ad4bd5c2d7eb6f GIT binary patch literal 59676 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 OFGabRvSl*H0sjMX*5P&l literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..07c3202cac80a383e4a6539a0763325ab43258b3 GIT binary patch literal 64932 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

>BkWU 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

>BkWU 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 YsJ>ZkHKKuFay{g|jFNP4_? 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v2_250_thumbnail.png b/resources/profiles/Voron/Voron_v2_250_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2d3358cc68f83d2096f7e0b9671f76622418f GIT binary patch literal 51542 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2d3358cc68f83d2096f7e0b9671f76622418f GIT binary patch literal 51542 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v2_300_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2d3358cc68f83d2096f7e0b9671f76622418f GIT binary patch literal 51542 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2d3358cc68f83d2096f7e0b9671f76622418f GIT binary patch literal 51542 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/Voron_v2_350_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2d3358cc68f83d2096f7e0b9671f76622418f GIT binary patch literal 51542 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®}*r|ItvYsih`{8)i`8N+N9Wcs^`2 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v0-120.png b/resources/profiles/Voron/bedtexture-v0-120.png new file mode 100644 index 0000000000000000000000000000000000000000..27d6f343a3bad4eb3ed4e6ba8b474cb3b32a5ad7 GIT binary patch literal 291049 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�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≫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

A_fXQ1+gFwq$K67CZ>yb0JniM@~Vj|naZ9xX0 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 RhKt-dan$Yz`H=hd{{xyfS#1CS literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v1-250.png b/resources/profiles/Voron/bedtexture-v1-250.png new file mode 100644 index 0000000000000000000000000000000000000000..f81d0b869e591389f6ee5f785fda0a7d255517fd GIT binary patch literal 521594 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%0DQH#)gq=YD<~vn3?GbbaLfyTOOt%4&>w_z_DPt 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v1-300.png b/resources/profiles/Voron/bedtexture-v1-300.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6b27bc80793a989d59ee1880461448408a0bf8 GIT binary patch literal 223040 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 g>Q|LDI{O`N7Mekvcnf+Y&lgs7*2Q}d2bN~PV literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v2-250.png b/resources/profiles/Voron/bedtexture-v2-250.png new file mode 100644 index 0000000000000000000000000000000000000000..f81d0b869e591389f6ee5f785fda0a7d255517fd GIT binary patch literal 521594 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%0DQH#)gq=YD<~vn3?GbbaLfyTOOt%4&>w_z_DPt z4)0mB>oAxQepCq$U&gp{ z&7;cjGc%Nz4>Xs%L9-5Xm1{PJW>wP5n``z~!YBU26mZRUAVi227=UFRdMD6YtK4J` zTy<`Wp70QPt$I3j(64sn?k~^1mn`{^eyI3#6(p$lWb#~~fIPaK`zQ?Q~uA)d#Sq6T+p$TIzsr?a*O zFt@2+*88N#n%z@8nqTVOt+DGSy3FAMY32H74pmSyPyg8pKB6 zC*lGhz#~6avY*D@iAp_`0FsY9KMQt2HP`OZeg~?WC+q}Z(xIrK=K%6uzja}gd-iZ% z>+a-H9mt`o38*I3>sZsNSU-$#F!(bm!i^Y*pW5(C`)BhwE^s5l?$9;=AA4^a*3{L; zduy#)t4OV_6ADjj*wm*2A_PRHDhfsjI0a+|MW!%l5HO5d6xu4Hd#gyoAP%5mQiebn zRUEoylpzdZ&>BI35DY>@ruSay^StMr_j@Fg!9N=wXu7qbA0L6jy=wmPFvq|@E z2w*?dmEp$ui}@*$_u2N~ql(5#wS1nojewln@;$scuVjp$gV(S*KWX2V0fI3;xoLLV z76gVOd6^OQpR1WCO}^@%wnA@F-c-_WHUz$VFZ8xFR>O;!LrfLV^jPrnvFRz8h+XB2 z<^|Jj#yI1vQN=>kycVJh>!Py0gakyWQXx9jWIe?hcc6AHzDet!4x1V_(R9n@CAMx! zTVJ~+G7~jnQoHPPX#J6Vc(1b_3YNAz5n+haYJV4T#W!kX#)1*GkEk0vw@#wO2_;In zUvmUZVaw<4sa)RYU+D55Y#v7K#*`TP9UfXA|h{TdEA|Vt+W3?VV)RuvN5v>R#0hyD5B$L!;*Z5 z(v<<1f_8VH9UJ$)j@mt??!PPigrJcZE(F8ltwBF#Ejw2S7%+WirI>00>0O{ zWRRl01)VAs^@Ykmc8jSrS5I^aZ+_#$79ZK_dWcZ5Ez0dW!qCpfJw?ok*>~?_kGK(^ zR*WsZt14oooE*ZZm31F}0pyhAB_LPTih*hrRbGfPfaH05#o$f^G=}xjdoPJgP`8us zLWAn`IMY3pR0sEBOf6abE3i{X@xB%coE)VL03gN%7VTT*Ctl;28b@5Qi8^UXv%9{~ zJ!LnuaUxEbwNzwrp&s=mu*B^rrY*wv;{%k=$0%A>UQ%;lWaI&9)rIY)7wjX-)hE+w zBZCh}fO{fwO+_On-e<$|hM47L@g$AE70rW|WL~-mLYyx`Z*>UKG<6F$yb5+|GW>Y+!&@K0BlXH7m!Hp_aF`LLxMV$v5{vC3#QDvf-t=^CQYoO1nARc|h20`*?&K+YW zhSlkwwu(mA#14{gPMgkn;FTz72`^IKMdtH9f3&1cC}MmVkQ?#yKEAibyZe^Sd$akl z%T%8cW%95s_qi5b#%pt10B`M~G}C7NwG$@}4y7|8Ixe8&$}lvh9>l)k9dU7ZmuCbU zuWqFu$kBKjYKIn1eZhS8TULdX*~*xzq8Ate)dt&(C}p1d541@Vh7-xd$-Z zbS0_@WQVt{!Jp1o#h|aKM9;I9O@yANsV$aQz`kw*V))~UZSNQNuYPHr_upIq)vs^T zAb?&BG5HL^;w>N+%9$QZTW%%zfs7wmUfxbQuQ%y!vf&!b98YZ6usIJ^w$%;)>GkcN z>*6=T@!LQ{lr#MXuDprV=wA-31~jOS*nVg*lakIc`U)7Uvdu@NlGh*0lh*mdeoc=_ z#pT&QF2i1Z-%E2s+n^ctd_=I>U~mD^rPowB)0!LW*U+o(#ba|>sM=g!JQmZqN7sVL zm%ce0q&Nvha~+BzNd{>~MSY~po5a}(s1KehCo)0N@-|d^fvU}w!@r&>8VqNU25Znj z(56p<1xJT7ErAAwsDT@dC`i#;{&9eKmKEmuLk z?52&R9VgWE&=8iwZEOrycAs~cd(Ll`RF9xc##;CLJ~rFS>hIo^asLSxW-E(Gt|Od4 zyRVMov^M0~yWoJHXn^?}O4`4Ik4;%u1DbXLE1}DlN*w=UmGfMtS}AYz zC#NZ^ZEld+qOe^?Xrfr$iPVn^SNg~}6E2^%6yq$D^cco~hM#C+y~OYKoLYo@LzII{ z-_%^CxBI)wurI&7+`HqO`MVc>zw`^fj~>=e!7zij{p(sT)N-c}M3eP0?1Nux$B`om zm0`QTiKzMFkMCCOJF_-!d;Zk($w=vT=15XgHQ?@J9njv41(O`rmGm4!_1Oz3xHOmgWOKv8grtgq`p?U6?m@Sndua5 zISmM33-o}r}$6&(2;ZB~zJ*%pNETAgQhNo=4;e#`CFC9QC0{l}PD$EpNab*|8C z7%zy3__b~T@7B4gebDrZxTHUHT?@z#vr0nuOPc}mdd)xo34T@1f+(O$YLq_7SrPR} zei`sBT}5G_+n-ThyXd_f@huuCFaBFm=x-Y{brNp_zUn9~+KgPq@mzv_7Its+m+=8F zI?pU=hWlcb^WTjgl++6L>rMVXu}hGP_A0yeVUsPA1wHo8=B>s$Ezrhfu1IM?x=(QT zUCwk3MdS-R&;rKPu>8Xcs-P@t`Kg!PUUH-t9N5`#*-ZatyiQKwfK`lM$?t_o@i!Z^ zJ=HesCzxHu4Q6SgEdZGn0I(OPrMC9vf}O%5>Dk$nfx!omuCM{Kj~;UhuKlvgXs%Fz zSg#+s&M)<&KR5lR>KKf`uD=9yxgL}bcR4;+zW8qb4@{9`omsl*BxomRk`n`c>*0~} zAo;smANYNWKDXbvsJ|gp?Wt8jcgnaiWN?U5zb7|boW5dK$qsL}gUfuy;ziR;{6e9q9ISmS5N(C8eS zS$5cysP3@Y4tZUJ6H@1N(Cy-hOFO2|Hpko5*|!nkWNRxM z5eiwHNOSye@T-*~UFRpe2)p~YC_&b&G({zvtYMtvT=EcWUq+n_qBXQ5&gn0T^spCU zfKAFNiEXIhCM77yw%FN*n7b_g0`Xef)-paIQvDFDMCX5}^=@w!bD--tlpvbyZ=|cK zzf>iuNxZ?FUZqKb(&?9U*Cx}YS|wzO2D<=VJdrt2SL-Xw3>}Gnpg5+%zY|Uv(r3MK zD+M`~AGKJwT|Br@KY5%J>5XS8xU6@ex~c@*v+i-es$yv-SMVw^vuT^X0w~GTJUW}X4CISrZ z_EtXBaG0}+xcPckvgE$g_L~<<$*8U+A6%A3`i)8T$(X~hyf&4TWT_4FXcoXVnIoxX>FSqaz&e2g7KO&v?F5)= zwInhk55%hWL!Cg{Z1@>^9!+Ksl>vk65RaI*ubC^TKeN1(6B@t3JfrjPwVpKTm(=qx$03y3uBz;@Nutd);z^#C=4h-SLhO)|#6 zZ^j2dp+9LUiKscZ`P1yccvVs><(3btHe<-JoC4CU{oX&&t8V6snkaAlSOb(85K5N% z8H7trTE+Z}KOOav$wlEk=YR#vh`{uaL~m+ne*LrVo{^s9a&P$J^GHo0Q&u8M;K7i` z11`c3hrev$(#X%BdjeLHpxYh+OrpMEXdlt&=1$0qly1m_1`H$AI~!IUTQ{t)BO*Fr zll3Gcpwsbib^M{WC`K{lvo?qHP%o|n@a_t4yVn_dbP=#o+x#vFNFsZ%W1*fPlV=Jk zd2Na+keQgr<2yn$Ls~ZSZ_5N71NKfJn}BV68PX$PPkq)c{=f*?86kCja0Zh?45EGi z(K@=SJwrq5K4}}`A`eisv1X*U_Ldt6#aWR5+pMVK!q5o1O@_c1vQ}}-U}S;*cVnoF zTuISn7bDe?;iP?ow1TX{vRlsp@q=ArJ`k~dth)cMPCo|Q?D5c~7V(GVtd$uYDM<~ zTdm!JfJhcY2is8xQQ3p9m-@??kdydKQQ;sX(MQ_D4Y)x9;g=rTdOAIe))2SiKgrTj z@cOTaA^*Qf6$-W}tR`+~|Bv)*kkk6-zkg=npBeaP2L73We`esH8TdbK22Q7k(Y9O8 z|DSkjz^e6ruWC~K4?Lh0>jB08ko4ph)yJul-8>PnP(gCwJvwP3EUhY{k$m;wKxCNOl0&gW^t+UXuI!jaI< z<;e|^CDoy}gV}yhXCfb3F?vLtX*I^UYWxKq2)Boab2SWFk?>p+W84OnCGf)gVJ!wZ zit*-P8CA`TJ~5x3m&dEV$1B+medXJ=1^XSJIc84JyT_}}*PqpceC zuge=WSluBuvv12@4~A4g1^qhFTbY5i+qD5fa&`IIqX?GDhn3saT&p!%u!kDPJl-OF z#)*WyMgoTHa+pzFeHm*n#@t#ODm_xt_Qg`KIBmW`LJwx!;0kYegUWCP72co}T|tL2 zev{Y50zGAiSn2UuAu`3v=9%U3a#uBpxxB&r4NwWVsw}uwqlHUNH0tI_zC&VPd`*;U$d&ph#dF!hw>A6{#2qoCs zftLy)I&~dH`9XkU^-Iqr&%|{(A^{&>KhUMXC~5?z>7-KCoa=8_X`xKIYddH9Cb}y~ z;PW-7oBCa*j~KU#0eG7Nd08mtWAf}rJ4Y<-+CD6u&epdrIH;umV|5jkeNJ)uP@8!i zC-TXU9OtW^U}&Y3OExm`WBQY?gh)|8zTG{wX{Y~XPf-Sz5AQcDGzhgr49EkUpGy`p z?_)=Q;9GAEJKCP;NF@0}L-t`t>dStzoHv-WTMshE1WJrRe|j_|`xldWL%6s}D2A50 z%+VS7PHsxX*Aoe_A(%G=3aoJ7XCU#`iSTZHRsQT;2S)Zw8qHv9(T><$NSgBoGtB8} zRS*HRDq!6uwc(RqOaJ1{^-?>`5HwVX?rU$Syzte0FrRA066vxsO3B3=WRN<0KOVKg z1)@zlwAqkdbk}5YB0fCuuHXVB&dWFyGnE~XY$ek`##495?`aqJ%6JsB4NypvfwT&I zfS1KrY0(fDspg8GN)~Ay_9K*SWYt7BDoPTo)0Uq+>0m*`YrxJN*Rn~>pt*9y^Dk;y z`4?Crw(5#F6Cx-f;Kro##lr(!HB~uTX5KBvt7-ejX54?Wn4rqskRz?V-Q$U#MvjM%J6_ZeTg${a2(rKm>NAK-SE_q2~! zLX?c4Qi>~{((p`n2esNFr*(XJZKIW}3V6!7$d;yo( zDC)0;PXD098$E_tY>mR^DLTWX=NlM}2dzr~FAS#sNW@khsBDf$hAg8;8t6iL1`ohj&Pbv{Tj|kM5+DaFA69kfMdLxN`kMGV%j@b0wQ2;BvLFikH+0|K z*--;qUtm)IcH_q5XB~C|^eD}=?19Zb_qGxOe%h;5<~h(Z}Ec_*B_0b93j^l`@X2<072#N zX6%;yA);ke>m#P6-y}ZTbusPDgj!8G@KfMNwcBaghj9=oyhhRR!4p8SoBeT(!R<8@ z6BG?Ue4*atU7g-(vthINbRneW9^c>Jt<&pcGVB7@07wFF#nFm;AsrET3V8N4i46nx zPn1^n#a)6h7eH(}ZzdkS&RXXSqL6I6aviU3Q-9(B1fG&5*x3_Phw*sD1)BJ;BDzgI z-Z;aVwF+x0zfbRjIGzjWX}!pr${SAs1I8w?FU=H4LhTLFKW1RChRA|oK2UGni{8M+ z4&oINu=Dh?>iMu9X~8kxL>g%{iB}WG2av|yN}}Q@I8_O9cR0d5G>ex&fE=j9E}=3L zPoT0RaRYF!%GWS7BjHyb04FP%6gIZFlIWs(MQ<3X0=-?OsU~>_D=OH?KEsTq@_z?P zP2JWtEAd3qgQ=;4pa{z}xYfZmVU5X+$7rD^#V}3{bqC!?SpJ>@Vq@bX4&=p3R{G1V zXrU+2Ng%5Nex*mNlYtkFRRFD^n1MvAn{7e7qVA8RE!H76Aco)nS$GB1B!fj`EbeUZ2#dKS{zWk&cU;ZpK4j_|c3k#e zfP4(6pl%sOSuwyVe&ZA6c$jb12^(jvH zdI=g&7+qEjGM_D!=Z5H#siK5Qg2jwez4_&sp5UP9q33}>mFR6>)wPJ1Bg3hbwi@Nd zXV^%9Yyj?R1I;E3&47qs@2_!8GP>x^7SNk5qE~CY&3j#+;^Az!?Mtrs?073Ld^aPP z^C}ViE_<(t_icP=Om{uNm^%P&E2GcB%xUhLc!$MlHeilO{D7YZH7lr-?x>zA2pt?` zh)_Ktr|73&CpnRkj7mO_&wZ5`<<6*lsc^FbL}`fUhjTA(aApME|LNB$U)eM-+?+vY zwLDl{glYcaUWKW-FoJS;w7~75zc6JK)OVT_W6q9I4t;~4X1*=!j}`7|$c1Rml~HaB zg-(ooE7>=SnheI=eg@Hf(m$UEny|VT=8fsGy_l^0C9@qS*@JGH3Ja=AUavD_${Jd_ zGV&kni-%DZ!OGc4di_cdZ?LV#wlppSd1{piUwy8-J$!(X?>8`gKbp|6YZLh$-w<&i z6x?e0%vjCs#{Zbu@NG^XU`gW>>vGOtzp??|D@vqY9y3@X zm|h)fqqMgN+B39+n7BI>`HYEUHM+%S>g=27#*~A`#HhkS#$1Q6w8r_o%ajyAo#!y# zAO-_enIBw6wS4I|tSHGf#<;R1jdr*i(es3}TRD$6Yf82xeEG(6!D%|Pxhn^#DjI#_ zrghsZtjqFHn|j*6YW5L7i&i%#wZ7^fpmq7(B^R$ziUX9Amv(@t+*cY+EMAL_!9w-P z*_i2Tj1W+v%?B9tOv6FHg4Ox$LCr0FYXW6wh2s5;Had(77UQKZIcN7a!*2yF+izt7 zS{ab`ao5f`u5lifZB3tW?Bnsm!Corv(y}lxW(DPmi>W)|`HPvT6Cm6M?sQCu;CcdUY=8W!1-wF_ zMJ=+LdK6~4S{=aGWmNVaCcJAM&eo+p=VP!<$Y8j%AG=EyLhhGNE}*FXUb}qgpsiq> zg-u=R;638hYiJnmM-7|4;~MjT{=@4NzIyZO*M`hv=Xsy6uG{?Yl(>4o`yvK?+_#p1r3;>|`M1n75p)p+Ce_9hRoxZcq z|M1qUW23yXyS(9v`cdQY6i|d;c`nVF5jy2nN_yM3-GW5GwAR@L!P3-59?#eG?cnc> zkc^BQgL5Oi={f{KX%xwWu8%FH_Aqr4VIyhFz*+{iUL)TmZ&CYC9t~ii)4o{kV61et zN5espcbTtY^^EI7V4(nvO0$nudFI~mRM9jr-8a|pXv1#Bf&aj4;6;xHLgZ|yIUszs z?jDvr1_(*<_4syh{V;gGW#D&-vA1KxJ)RplKB~I4RGOX&RT7>l^*C?18g*@&vuNlo zf6I4ziMfw}o?`nb3BL!-YM^8coTqLrlDqjI`^l$)IZ)Zs^{J*#hSCewfadk_9t@vn>VQ%;rqEY{jC!JJz+}eg<2@vK#AiVy}l1`g=39=_9VO^#_2rGH2e8 zJK+c~oOxTnyAZo{JNLBU>0+1mo~{z*&#NrzB8d|DZPEs8p&-^0?Ys>nnHlp7o=braV3Uh&l z%EH=#xiBeUmuuaDXVg710y5PFbDgnCMZ73^o}vi(PILT^rxz6ipex9ZGipDvK=y zQf%MED2`HgZGJ?vu`M`>d5vk&n03MpRi)_5tAe#jH?zI{b?hr z0t;nNCaRH`{m4et!VkkOeNZ1-i(7}$Dx!|0(4_15X1zk(4zoqeKjx)NvpKbCSa=AHthnTRWKBDCf?kCLrR7$p#1AiG6)|`X|`E&E2=15=FQ4r8H z3slM63P&R0Umx#~+%B(yxP&hz zo7*{Se2)h9CCvl0T?_rUH@6V~0%B?2>EJ+j{ZiGl*z18TTDr#kF^Yc$5J+iXj`k|` zmd~#vJ{d3R2ia2H$BV$r>7*;Nu8OuqywkkV-h|~3rHi-E+hY58Pk1Y(pEfU;GOs@n z7>OOktFW_cJr>M!x9ez&KV@=*hLq6eNqgSS8=X3{d|sWReU;K_fyx$b1xyv?wP4=L zvrEo9_#H_4v;l^JF4|lE$oT)`H8p_vsI>n-K1ylcnxv5B{}Ug@-M3)qMs(o_9js^X+=)is&y}4xUYna>*&d6#iix#f1nmQ$Y2J@wVhy87x zl@CBz4JWRj(4RMo`8_^jx9<2(oALX!V0AP`(>}y+(e&O|a67l;%X7%7W$+bcJ0-d{2EceH?$gGAB(hh0mN1j7 z<3pdtE}Rthdk4s@o_n~bbDn$42|A-P>+^|?uZtPuy@TxueCuB2?7^P4M3p7^Lob1Q zO67irKXcCQdb)Ikq&gyM1Z2m1ci#Drs>?q=Npy3&Y2X`W@ZT00t=B~#XgI?Gxl|4OG^ zXxBF7cihd!t$$c;4V?967AOa|bf?Tj)!Zc0>geEpWv{a8RkS+%{)BCf%GX~9a$+{D zW6GS!+?OCBa1;;vcmtA#!Gj45PW+&lK*cV&wj7F8P%&k4Clqs0F$082Aa^(ckS0yS zxhodyJE{lvQhR0ZRrMxkDXA-dAp2>iow1nNl_zm^hwyqlGG{S8T94ejaVP#g&9ocN zT=oox11(5IZxUyLg42&hT74oY=Xx%^wSy^hG4YWVK>9E;g?hIG7>mv>A8>!NQszt_ zzyr{gW28F>H(Eg@3~2HhTz4GgR-ktN5X6n)w+ zB|=f$5exb01tl-t*Kgh?(!+Ryr#aaXGJJ&kZ_awZt(+&ulXInwcj0UJ@d3on1Epj{ z2}U(+7jx3|1PynAloG%b8`f0^(et`|su@@+ovj?ut4m9Zyyny%(o;5`w`2=;+aLOBkI0ZndkpS+^WJrI|jT&nH-EX1Z}_&i`|4Ik!#;pl07&A*pn!G z(D4?0{?tix_}|2H27s5vSTeJ~q;1fMbK4ROWH=SfKeWB+jG2dun7TuRgs>O7M?Jvqt?OQ@TaP9Uf&@;=oRhuvDMQ(VLNJpB=fWDyMb~>X zJfVDnd+N1gxLrr^R3%VRzCRt#Cx3<)rd|+ofp-r%gaxt($KZWHn$JsA`5N|IEEz8P zPuoY&@IK$oxFN{r%@*=Z4WJ-{_xZPs8xHmiX%5dSt6Lnew9tH@Qp)2s!plYE?T{rk z^k@rsU`6l-4}v&?8WUc$y2Tn$b4qD}d1h4o=amxbL&%v2H(Dum*|Ovb>X0p?En;(n z$DfO#Ru(*%BYF-zaRMfDqDe`vx)fSmxUF1M?dd3ZK zot1OOk8wOr)Uw~Z7FJa(Vs4XCztd}}@`^f#C1;Uxn-3N8Kh|}}oJfS)hm@+u((DMg z9EgmZRNHJ(9a%;-%w_7h@pvVzC)NJiRUOG+)Si1M^7R$Yv_5f~XWM$b`TTx!@XW7WTiFRomQy z?H^~KFRy2jeS2kvaLOD%kD@x0DzxbB=fH+kya`35ri&?Nq!_RYUqyVX7cOxEciZv> zM8vc;1joLnLp;ktQSlDN03k_)@$;|H^*Z`WZ3sZ))ZkOM6M-P-R?S3* zOS>GOf$x+PK6mZ5?$M?qR1^Jw>4^vE0RltJu2rP2J>tJG7 zG1pODi%i38KY8WCgOEUXEVn_PRw<+Pj*V6Yg^ChC?%v$gQTkWa9M9E?Zj;4fkZk{& z`wcA5^UxG_Zv+u7?N|*#>4X73?1hHYLsYmwRvG9OM)!{>s^r!?5Z&LfLPVoM%8Fh% z;>nf0->~SSH6gZ&g01K3qp%{`989)4%u?<0!&PL;)UluLccyw44y z>RWattuG8M&tBTM{HGs(pio$g&U~f+>~#I9^{1XsY^z?jNYt_I(P^bv(s14V-?4#z z?P~by(xprLb~^Z-o2`oJb{Wcj-!_<6R>B*}7-9>L(7ci(n35Sm)?iAPce>cXyW(Ce zXQJn2uh;2uJ%PFC8`d@M-X3Aq(Z1))?x$fTLClk0f-{X9XtSHiDn%U^+%1T?&iie{ zX5&|ZfP}f|O)>)tuQ)h}0{wdW6piSzD}0@&n@u!8&H;5x7j2W@Tx&4d4d%D=g)L$s zEv;LB{`EW6ds&y(x|`4guZn*M(<_J1TneCH54SDO$(so-q0AZHdU_Q0Mjn;r&lmc# zk|=XJw=iv6_BEyZ&DU&V;lhB)MDp@M4g1hovL^lO@EDIvWEEaPEpy(D^ow|dV^HKaOZ3m&PXb|k(BtEY| zwyNR!)e1aJ8~!z?7*l$~4bomgY9&J1-)PrjU9bZ~W15bEG8IMJawyYOlu6-Vl0dIx z;6b14DY?Rp9DsRRlRnT?aJ95xQ0^bl5;D#-PKX^ zO%gOpT(67m@nQE?81M`}U7g$joE1Es5oaZ*%LbAgRxXK25w|ZY-&FG(eWYd8ZtFL{ zpIxnv)>jIcOG=3`z5}3Diuir(hANLIn0&9yEbHU#+;nU*0hs^+y``K9$5x^weFR>~ ztz~AJ9}nG1M@Ce{H}244k1S`CN!z;uN_DEI0h;xZ-c^b8H%qpH7isFF7DK2L#(ZAj zYrF$O-vGX=qI>Tyj_T(=YuTRXbN&U`meWlOQ#aanL1IA6=yw~}JRn`Vs86gi(e6KN z&bumF2s8^SPXYAX6PVHi_GT7@kviLPDlohmkOB?bgyJ)}NK500H4XxPt9TliS2rd& zU1$~`>?$jumGc9Z!>Cc0o+tI zKAji){ds>@{zP2ZEbMC?$Gri`a2oD1ll$9Vnmm9zVIPmZuu}Vu;7{|phukUD$UGE|EV86zokd>0uB{BqU%b!;x45p z?;{L~u({2o9lAzf%c{rGnd88?oAu}?cS9D!O<<;UBrR}(XF|Cf1%!H_s7+GXmxUF5 zm`RWnzAs$N?NQ)>1wF%ZatW1v&?tV+EjHmPcmdG^U*@StAK9sVwDg|KP-KJqN^kmB zFW3)xCQwU#kvo86>xk&QnjdYn-=VZzsRurhWAj}_W??cmKv>M%>a|LhQBY~)YCO0 zVOQ1PKD-kgcSeRdhhX1(s$qiK4Dc3Yt7I%O>1NWIvV}D&@`u;yvv#<$&AZpGOgvJZ z>{AZfGk?qb1???yHrw-5-#i;Cmef`YYQa@!u!;8k2&baVtFe^Yc`X zwp=L=@Mvh0(1HMMa;I-SgQZ^*R}O)<;R<>c6)A9j$uZU@V>Um4UyBM&vPKWJcE;s! z(J%`8ESCHW0oghu6UX`vAc_gLT3{>pIz{RTOK^3>SP3aBePGSA#sGBDfwhEPk}!34 zj-s7^`oetYBZQR3%0tJ>wz3Jx=Lj(hi>Xi?2ehxsKYWCkOBREC4G`N;Qwnvu9zj&k@3)=WPt%x6B>)Mw;GoVBZRQW&?#$57jr!3}c zJPh>Rl?)y~{FQ(0=T6_sz{1)o2mNGi8}->hSUo>ZWGDQz5-89NOilx){YRY_2V>{J zRp|jaLky>i`z-urpC>@)eQN?H2c7S$;$s^FtxrTnaD;&zPta}{`iKd4=@?!S+*sk=P*O{8RZB!gXwqZDA zdA4#Yn(pen#bDFm4UG2sZ{QXBksSmKJ3msx_V4$ukjypNse!%aE zLV64m*1=05YzWG~Lh>x>kkL3~kpR6whMzvTYyr^4R2(-7#lnr?(EYc46pKKh7%cm` zgyPkI+itzZr284(Me>n)gJy-?eSzXq-JI_5vsfea6REgq5Fc6pfYb)(D0OsP;lxO# z?j%a=+7<%$^a#y^vOhggcPHTnS*K&@(t;R9s>u-oxn>0`j@_6n(F)EqSY)Mx`<4Qn zN?F03wt!>szY>s@*@Lr;;vNf*a|>ts%Kin>$;(;#7k&ZtD7_`;|F`>7{Zin0`Mm@cqtUc2yrK+#A^a^9%vvj5e+3XTvCWgUNf zVCrEpNQkPvoh#-A!jj157TS8R94a%q@E?@w1}(f>{DS9r5AEmzbrp+Aft(0MP?XrE z%!L3Cc7I4?bG-AvoY(&^G_{N>xXI%KxqbGjsQa6`Vly7^`JuKyGUfvBZ`##m7L?B$ z0?>yySQB?)(^M=ky!$J`Xhvn_KVvpb6>)*s8roHlYw5Q_CK7K_x+q@zxc{m}(Ymp}^m& z0OZlL0Jk>+PzxgaYoRBgoi0qUSx4zrrMzCSxGI1o8eL1YC=I7UDkr*hS3|Jf#U`;; z_FxEf8o^@BOemI;+S$DJHPFS9;^RG$SFpKUo-4Rm6+kXuAvmM<>?Xqa@)3K!mInvK z^7_=kDHSp<}pI2gB=ADr3CF0*Cdl7sI3k)Lg;ts{L`)kuCLD<6YhW z1Hn}+x@Nb0v|>e!mUV*Cy#9CYSH<7~mB|bBTYO6cvST*R-sR%!-IlH{hgocd)&9}N zTEKc#IuS<7RQ9{y%m(`@kPjGhh=EquJLv^aFxvq7$bqG+Gt&<<;uAjI3Z$`G_Yp{H z0BolKWH`WhZr7Gqe1Fe}3f}f3Pt-z~_(n&_5~0ujLcl9G0oiJ8kCn1vc$eYgRN6=< zW;tciBJqG-A+u|^%XI#655FC(xu^x z=+OY3JRn!{20uYQq>&c^u28P6oM}k@JVJnr5+GNRC#NC}|1cufH}#fl^LW}w!U5d} zh$yafB$&_qSphf*PpmG%s_)R?-XAD{t3>~FZOiHXo#miAEEF4n6b{!olV`Ku4-(q- z9B32pkLkY=tq!ElU+G9FtK5P(@ksIUmBZ?}=(QVO{0}i%QpdwLJ~f3l=>G9NEfgrT zF3vP?07nQ*yEYooQ4kjk1DTgvc%cAP<^c(FHC2RwCi%J#mbumiM>TVTrX9ff3eAtI zD?>w>I(ZsIqXO@eOF^AMF{d@qhL1_zmbS-PJlKr~Fki==Lq=0VG;LrPe1{4O7!82~ z#_*J;8+h`t4px0vgNMV;@<4^p( z1-qHDKj8g|N*>`3mub_!;BGjih>1^bbfb%65{>t&P_#FjurK7Hmh-kB= znq6mre>sH1K3gE9=WCGZSZD1!Bn)K5^2FOg>;*~<$n=thCHFfZ{T;H~tFQk;^jXP3 z;|iwhn)rLrB!mK6*)U~ljmtH#fFq`z@N7udSH_Js$SRAZ-TIyChI-^2jnxLSD;{{Y zzrpv9k8q7Cq!mQW&e776JY#Ovf+rrt6=#R%h>+N=|)w>@vMqlQdHo_yduUB9@9C zz?Ya$0$_C%Pp97?)A{Kk_c7>fanVuH9SF+cph(y77EL{PqVyG~T^nqk==}H%(slye zX?min{E!)QU^Je8?$!P4m^`3epq=&$kyOk~mA4{cr}T-aSG%Df*+goSheG@*RVrMCRyinxW?Ho zmy%BcyHjvpL9i4p-Aee&o>4%+pNk5zN}wPR%-tuN5b@F)y2GoP9)0BgnM4%5B)S$R z(+nmzsT{ojCuZxTLbEO-8#}%{y&Hj2U;5!_m$Wdj)ax=`wMD;{dy+^GGNRU$(p5Y4 zzfV0$xcS>UoCXsrW3mLo;YnR9arbUanJ%lRlt2dbn5abwZdQ6(JhU=U)=yboq_GmU zy&`5F^pX8cyQu#dBDD*g%wT-kw2M@9G=oR7zeeeNA1toxIHGv8@4!YluR^oYYlicc zUBypm`fMwsB(tY`3V*}oK79fhbC9|KHcKD^Ev(|Eodm{@rM9sig35+u7UZ78E@V5Z z9A+&eH-W7+1!UKtFNrAXYv?+H)}Vt914J{NEzuKvYJX4uF|rusfQiB7CjO|WyP9J$#G8jv^}n?IKHEK zHr0+$qXAk4!F@O1^UpG03qv0bL@OGDHW@veOjJVf)J8qFYk6nTI$@DEQ}r%{{$(d1 zU|s~`r}$!sUUMR?ac%2+q^N7>`FP~@6nO}5RCh4CgPC0g{e2jU+RIh#Hn+fb%fdSm zwgL1en}qeL5H>8Nsop}}Jqmav*8>Z?D6MVwXd7XH$h*oY6YxjaA&iV8|URPdIvq9_Vc>#SZOm?I8QC-`A7eV_;6c>f|Mf^1X`YW7i z7M_KyuZ)Xx%UyKuNLOp`ktw{dG>WHI2Bsc>TpF1*GPBYsnkvm~gG|opYiMrXh-UIi z;0E*6Cj($hZM(a=!)5V~fW?`<5eM;G>q{ZH#VyuOt2Tiwpsmv&Z3TOF(!S6)Y5Wp( zLkq(HHkqdx_o-_cCvsr4WxF1^$mVoo+FxAuAtda9q{aj5iA$H|>LM$rf zuLNODFIW5}ed|s_9&o-OOEObqOKqkA3}h;azcV`M4-5^1sMb^QuT&Q5K$(N3-yei2<$ZGS!{l1wZXz>EpL_ZI&ch ze~mZ%%<~Z(4|Ib@0AWj}Uh21_9ne21LDwNo zDS$iXhiI!^czZo!PuY9$tDG-aMT~Ag_DA_ZPNO&B&lGn8FXi>x_g$gv97VJi@ko_; z_qH0O@EnWKB~`BY^ICoO4tztx-@H_N!+rR)Iy(`Nl(=h>;!6Vy)Fxyj5qBwa)>$#Bx9pjv@TC5iunYo0)^ zQY!GY4ISoOwZhkXqQOQKH=Zh#6;k9|5CUa_N5;g_UDJS4Lhw|8g)(n#>5rs`1yEt2 z`WRGypUlSB`=W+Mjqi3)7qol6`(ZEa(TBl)b>oX-+C^Q|jl}!ozDs9@;?$OZG33iC zUu*K6=c_o1hGIJOL8|l5hx8h5Z%sJp`3HCz{cNCNSdVVsUSm?cj9U?M>W%aDYxT<> zVeE(7AQ1+Ytnrfp zBo+bI8Z~a^5zOYD8-(p*k}-ZUv{&b6Nd3)@OUIT0%DoQ~oX!pD78Y1BDhpD_YRV8R zUm;o+BWVCSDm36bVE{1lpXH99s)Fo7b9hN5(o60=SfU@jffbvz0hWL|3v#m160Xp> zw$z1DnUhQVH3X@6^)eXojiqD~znFVJkcfvwd%?96T;As-N}~RPWyKxEF+kR&yj^7L z#AvhXs{92iflU#r6vCL1QW6bTLca?jO$uha_=3}+wxxveBkL`6{dpZl%N@BTF4d}T zOAR;;&326O)4cE$jX$?Q)*Aoa=L(Kwck&KG-cA|vMeNfG-P!T%?7`2_MQW0jU`nC|qr6D&;!-UltCb{5lr zfcbh3u9ILv*4yI`*Mnv7QSWXskGCBxTC-|zITFv?{PWG=TLSaH#zZ+Z^6Xp5N08+zMM}^E1IR1NJF!H(d)RD~!}$&PP2D0IPDS>;prd z*XX_FQE5fVx;6A(uuhd-;5zSTWbxmKJz{tJH}x8%gAM?UD60rlR@`te08@7Q%;){j z)eU$4hjA(b6VBU0@P5guKL*P|M#;7yILMKIm)DnbZlQCn z$C%@%zos5#{^|wF92T0+KRGY|+0WyI)SSMs{snk_X*yqV$io`5dGX0#3w>qLwVxbD zPcV*oAB#&oXd9&Qu$Bcc3j=mnQ?ITywK2(Er6203m6*%3Ool|i>2b%7c|ihrpFvzz z#6Uiyjb*z3-Al>gC9y77(+@CeCwFC7@*A&g8O<)P07B{|NP)bv_hTcws8xCUA3r1% z|1MfpReR=)hEN86P{$*bwv3*2>}BdG`#twtb1G8Pd84zIGTcj5Am8g%w`1>6tg_F5 z1CUd%9zdr@8t$DN+RyQP^-^(=cW!6`o!YNB;+>Nk^sKLWxRJ@uf0_coTpMsyuC)=G z{Z+;H^?jEf+%b0Fv2<0T^T@%a%xzTip?Mcu$}+56B`gc_{kM;5cZ1HgA!lJ?mB*ANuC@7ZpyJkNqJHF zQyXAnt^reZU}<^WP7qBjqXdG*|t-ujj%JD<(fe__#h-f3HU=xd5&!&7cWSG&&w$ z{J=Rh|J>qVyM8)%#ym+t_BayRVAl0RG0;?o+=_fGdDZHZ`txHEOXbo|C^LG>@)HCB zvbeOA$iPe*7zqRo(uj)$XT2WV$`<_LG^mC?tOR)=r0fQm__EFcE&=Pe&kw%Yp{SFE zL0UQhSi!x{1jo5=64ZLYfkav%&o~3-FrIxJ|MURBpiHR(JK!xYGbCkK6p&R=yCT1R z9VEM3@*%ol2PPq-F%!2*F4Rt=vTs4H9LXcAF4$ZgQgqKPsCyHU^HMwu@0ujcBk0x2%%Lq9RccD*HB|I0S z8rgV?BSZcUCaa7G+0P8{pE{S7E5Ac-fZTA9K}R;|T`)6cQ~`mV8TZpjHON#GVnEZo zdU@q>BTwNfkYv3OGLUqG0f54t`+#xcc$(?zw$n|wD8Qv5+HyT~5|T+JpjBecx|Eze zgwUz;fKEw}hm;^tc7b9q2LOs<_@u5bgvinm@Bq5fCOyzajHzHI>IZqd7q_5(Xtca{ zz%^O3icmkcdsys5^kRRszRuYIp4zoAoQFnMi0WZ0a0chDOYXyz0|&~Yd}Ymi+M+R$cn3{uct5<6E9G5>Q~rIa zz)IDM`mfXlL6Ajy9f+$&(X(cBR8+hTn*A}c@2h?=rNSe#E$ObEs_&jm>kBN)`)+8{ zAwOe38cBC*gNmPCbIwEV_DI)u&%o{1a{XLc0VepH0i6Z zV#L5&2Bce1N+=oxq^qc`i-KlWNdk z_i-PO`w!f^{verl=FFLP=Dgp}*UNC3)60ho3?p7(d`+zQVbOEADiJG1ukA46bALd1jCsYYF{7ITfTNlS-Q9px^=wr4 zW6o`Uvk^v+Z_@^w{sc0`-^(#27z)zRo*eF~D1*DPnraVDK%=+FPPhnQ2ieq~t|R{g zr8>s!A=;l6c@|jF2lvW&+(i1C;q{lvjaa1=*mJM~j+BoOc#`6t0{AIh_ zw1VAK!WX+K(f_cUngqM4IDFk@kOJyl?M{()$A079_J?_~cUep5r>H?Jvs)uYDz)1 zcUiQkmCF4k2ND!Ihm-QaN8xcz3+u*8(&hqX=wsXJ# z%=sH_q}Bl`FDVhG`}gdf_D?QA{)aBQRzsk{?HYtO!H$qM%?fS6+>WQrtfB1yzb)eh z;1;9O^_#|>q{LY%mzrx9F>7|L0AA{Ic-@ESe&GEw@H_nN}H`;i!<{Lp< zcEc&2R^@E&tvovR8TxHheOBd14LxYXL(ro=-r+}i(&NGnem z8xa@Z3D5J@aBjPStf-P1g5qxR6=1O}jn)Q8CR!c4<6dk$1gbh__|}sO7~x`dohAYuey$mJ2@hL+ubBeQ(s$Dg}@q>;Y~~gGpi` zATM+@djYKy@FY!+BBfSauk`|iXM{z^5t(%e;vV4-o zg|K=w%_q`&mBSVB9+;>GpO%Hl7yKh^ahI~XZZ^%(R(csGNHCt7O|zqn{|?~PPS#qO zD5VSmIhAf((2m@x8epZH6sKgwSq%bEWm9kw*+$jFY(7QEhS~lIsM=mofo8vh*|`)` zrj()C`2(A95Y6udi>vSu*e8u;UI(yN;^EB7=}FxlrkV<-Y>$CvKKfdTA{i9)IsKCdH>wnDoixO=10&h3B<^{E9ye0^`f>$RQ&4VvK~3Z##BlOLBV(bw0HL=M@^% z<${fLgDKrIw|WSZEmGc=@_h*6HTRQVA5He-<=iH;asy^;WDkIG3*6FmkD>2<6#BJy zTvqcb5uVbL7V$f_SaE2m@`i_Le`tJEPYT`@HdKMze7k)%<;Pjm&wLx2|DWrxzW>hW z=RZzf{rU9lr#Dyb-ug{%#o2E*Uv{PZ`oo-zF)1(Vx!zd4$yjiG^0@5C=uT-^Ma#ie zYu-N3@u+Ih(+jhlY^&SKuX<-z3nG7c6$}<3XQwzAjaT&L?`om|WS9K9Uz9_$`&4M` zDJ|nyscpgMvCAFt=a*v*$Q6dhwW}XzS0L1%MbxLi4*R?xi+FZz|NB@z5LmT(;c8k0VQcc;JcIEeEU@bWXX@UTO#u)% zvqp;=DcJ_&mBhqDn4h%e!Hc0Th|o4Pd@v8sQG#4HPzklYd=HP$6X~8+0sHTf4bSh9 z3g*(K8~OuU(!GbK&5~yy39FxI#zxW?%-CY_(!$c?tsXWqEjD1O^fg;z+~0ulCxyl; zx7afHZLffU>ax$ClMOlH*Cqrkzkr`TEnExDJ!Fp|Mv9Ii^2E9PDAy6eDX=-Ted&{b zBLzsa-0>3+4L`l!V<7DRxyL@r1sn%HAFmrVd1mj38<~EmpMG0zFyxRLJMN8DWFMLQ zVfMRP4=0@K#WG&M(Zf8O3gOJ)79XQdRX<(yD9EDa(YSurQk>#p{5ALv1+bh`2W9$X zg~nHQ4CYprB^!E!)=W36Q{bI`gq3~dg}4Dv>HhhSBVIwNN*6y{rVrzLswQaLW*|v) zSts@j;JakuwT%wp zmGyC8Vl;k+QU$w=51t7|Ni`)FrK8ytTPB*Y;ts)(HW=G(L8~45G7Pnl&2HUSl9LuN<6_6clVB%8tA5zPc^%c0m zIMr^9r7G5)S6x~VihFPkL@s3}WT62G22!iZtrE>-9T!||%gQclKMq-yKx!}@6nVk78Rup%u=cZqBpR1g4!}nEyb&XN6#dtcGNsp{T6V_lJr?bpHHsG1s(fZ{N9~!WJFn^1!mprni~9jY>GhLCQMhvdnIF z&ky&rk=D?H0#J!-h18oaehEx#r`V!0Whsp<8-jQa&vJe1-lZu^0Waa;^7W5>eSIfg zl`|a5jNV<38zR9Wr~;jLW-}$;i=%S9H=i}2Ja{k)-YcAW)mnEuXnWmX&JK5HX$5tN z=i&oBvsJox?yDGWkl<4uPG)+(RXe3Dz6d#BmC(9G@Cia0ccK@>p%-dp+~PLy$sIBv zO%Nbe75oxh-T;tlX%xSsbu~9W9I9oNZ^muU5H?0@r4Vb5R% z>hpH7xWQngr7YwJQfN}@)i0pAW}#I>XE1!-nKvq{RO=3}Sk;5~-Z|=Jm zw65F*I#JCnMgG~Sj@H784Y0>k51zbXyRU`Rk!q^t#@0t**maX!5>(XKR!pM4y{<^{o~`5OA;Ym^vO z-aqh^An1iSUCB75!)gsmp6S^F_LQ}9wenbvO69DA1?=$4O6;l~*eNBM6ASAPDTyrs z6sv}ao^V%HdgVhz@-#>Qol@@87FIJ*F0_G#^=M&K>n1#3X}hI$98`IgWn6$AWTPEK zaiQlm_+%4Q_coMUPg#AzaHZim2Y#nLI5M_wGj7{=l^k2;(BL^EHWk5CZDlSe)1K_v z0FT98(Jq_6Fi%UAq*M}UnwD(ngScB7O&-1jY=?HSY8C|LA>iu9+CP)FLCi#Y03)ZDM8$}Cv-x%m6m4K`dWRP4^vR`yT@|d_6aZ3O_iy;JT6!S z)1=Q4DdjTE5d>e5g9j1i!76ACKuJV`%kziS8*|o z`P>XK+3cXf0DE+v{DgVM&iXg0>8bAAYk~lL9%SG@3i1tYitNn0Ig|%+MkWVrz@?TD zLY9`i^Hf8TL?`VKXQ%#+UVs54hoRVL2a)@g;xzzJ1-{oy5>a$3_{J~z%YKiuj5IEg;U5^tqdZg@boOb~^%?!4*fzt z8Hy&G&alh>LuTPHpfX>%VyO#7evrk`ZiV-*&n;A7g7226x;t;dfrV$T&FkEbaHu-r z_38$0Yyj>F(O?*Fp(+bZ0Jq0*#9=kdb1bb3z#H^8oKvJe%R>0>9u2%?4aY!H1xkD( zDH8$yRT5zo;fD}R2&~_cZIeGgqxs~h@8o>NlIXfYB}(0|rgCQ9Fo>z4FtT7yMSdxQ&q;!@K^ zNn~NwvaVP2p7=;Xx)RPz6v)aJ>?V}~bS zAM5@Df9Wg982Mh}wcdXRQ%%WGIZvJrehhgk6u`t&{EkD~OT4e!hXiDP-o+NrQ?7HI zrMC7O3Hd+%*38Vt!_X)B4;ckI&(%xmu9h#wRaE2J_W(?3T^2{@=0fU?11rj!sjJ-d z1WOHGBEGTkZAPnieQ&TIWS7}u8DtpQ)4Gzyl}emxBN+uuOzg%k zELChy8_Y*s(hR&j7@#eqFVI$b6sH^d7M9y^Bh*`^X=b2xjA>n+m5X#rV1%qk5si4Q za{tK)(DoIji+@D>>B>rVD)%{0kNn{ay;UAuHmmR@RiQ_&1ej|AoP>p-RDF(Je%&QK z92C5M#j6@yhMn6dO8qWS{ULR03r#Z@?a5r&USsX#6zdBgjgWr;b9&*O)$*tAO){Pm zl7hC(DxO>n92zLgx+3hVOgrRISp(xP49X4ag(;D(U~B2QIbfMau^nA!14aBo17>hZ zF3G6zk^Xs2RmNb~mic+NKPq6%<~oustUa1aCp7Txa=HQ(D-<0YlplbLvp>Sp@p z$#?d}+U4_&cy|{bK20Bl#}Xx9^DcPtH5cilvX0*(;VZoP5A{9H&1ud>I5nAx=P$iM zE`i+6Pp{6mtb0I(XREa2Y0zI;2P%KZA;Tdx1{h}WK%`HKyje6u9{D@;xyFShKOg){ zTdi_0;q6#1zc8h=_V)(P@?Dt#_qO*)f2PZ;y+vD<2XWiHQ_5Zl9l4rOCl`EY z0eR8hwC3~FdiInyeZyOn?2;&1UiWh>L&0;IT&B-UUI?lO7F?HFO#q*Y7-F!4`o(ZO z3z)J!PFwUnL7r*DHL8(gE@|n434&COaDlv$IB!p4w;k3 z;N5%PHGfP)2_TgcgXQO_sxDpa7G;)=u$nJg%?kXNHLsDjqoEc4O04QK7Wfd7Zb8_i zZzNQtkGP_hL|?{eTLn{t9$6~rkEm9{O8#^|psms+BcX13Xr*eRPX{u3A{f%m%H4tL zy{i?@1($&UsCl-s=0_P!d?9;kbG~5mPbDM;F;-~h5m19y9{EWSjekU~YK6-Apvp~h zsYbqZJDEbTL>0u3VYa(+HpsHHoAJD%K0K&TBdX7s7u^pev;4tiO9@kruMs)}BcbUV&|$e` z_dN$oi8ItHXju!dmnVhI6p!lJf2ULruKT~bQHe)eVbm8!ZofEG{J)e{{_nB;+XDZ# zz`rfrHL>Jv=nWOzSM(;MBt6GQ`DCB^<_rP`_Oq4z)QxTUFOxFDB=`{(!YCF> zg2|pA-LL4}elL@npGPdg_^R`l?HMh@MqWUdCzEh>#UnHbtu77<+@ zh>ju%tGrPsF85blu$M2g zYG;QBVigadWRM&edC~Jc=jYu<#!(8iB9C8{P$)NHmsb+5g3>cyp}%70hoBshMHNt0 zx8?0u=fiN^d~DEuo@eujQ{9X9ecOs2YE4c_!TXRz5WZW!d+Daws^HbX+_ zfU@r=FD6`%K<&X8$`~ttJ)16f8WGHTpr7iBMVWvc2jprl-9SA&f9!l`1tBjd3>~d- zBRhUsc9deq&O#D$Km)S9yBD&<{YQotMSB^B2#CJeTUGWiqubGJ za)_0Lcfa8>^XtTd6(8eE4arm@YS#xVY~(R?+E*@G0^h@sW@*T;+9!QVn4EZI**8In z0cPhWEZ%~!qakMu0Y3||z^8viy_`>5a9d77sL}ETf^|N_FfHHhx$FaB;sXXa-gNmr zgYk&JX{D9$MYa#quy~^txQ8W+VVmVcM;a_Y?vjU`a3K~oKajZsa1<55=JS=@Yr0|N8$pRGXos^J>7sssA#xwHiH-lE2T zasgV!yK+g5?5JzvO@|DX&R1ZBh1|={3Jf-SN~eJV)%&QuLCXM$f@2gR@TTjw0dEgO zDnF#(W?c|4;(uD^#gKB8NKWJOj@uJ+ziYTn9IEkT#l?tZN{NJlb(2mm85WO*noHmyPrK#^!%*=- z@W7p=3IeM@g~2deIf%+Lq~Lu8M9|CSE1u&X7aPU1XolJHHy_-J8X%j&J54N+- z3W-6pH(JHJSacXXxGLy(xr(5rX}J%;O8P>ZcpG2z``bi-yF3Bz;zcoza$Ce+@a+XB zl1ej#G~;Y|IE14*k16Y114D&ucUhmv{RALxwQTphba*sS+PDVyz(MRKVRGz|rFY>d zWxy44fxRowWd!W`E@5+%k}`QOu(S8I*$YkBn8mfke#GBu)Mk>9;LW=_C}jlL@0ZQ=3>l#q*~D z5;d4A)?!UDpeggQjA#H%Ex1j3YHjAj=r-3DUp?I~pdE^WrkR*myb}Ed7o4eSru#pV-sfeyInf+=4fm@ zzG%q>q1eW^^HDssi7u=BdM^2r66?#XDXAQYf#Xf|z1a8wU1M^ZljYsLiIfnGwFPby zcE`2O{0}nF;PC>_@~|J36qg05RXlRfI?w^oHsf;NwCU>_=kyl^ZGLxdXFW!UK85TQcDTdlp+~EW5m>cS_{1GJEH))wqhmY3JU-G7C8xSG zI8)B73N(OfR^)r!w3k}-BCSBB+c4yJRz7G@>Xv9z9snS9Nz9<-r60w6inG)o-dZ~f z6cnBL`V0pIxDti&Y2 z)|j@j-!;KG1O4&Oz)vmDqf1XA&m#!5_&D8LH(#)7yn&*Pu%YndPFMAEk-UhrQ1mxxe2OFdiJVlfo*fv_4~vhp z0?_JdZ5D1>jiB?jAo3&%4(PQHU2=jkEe|{;TS-3!Rla)%8f*;H2EYel=UFA3Zvbyv z!ZO>5XsKT$6CyeUElPqqrAl0DsJ(@@Gn>?16;g!CTOkn z<Y2kg}8PS%F=DpT_>d7kB4|(<-a;EB{Sa~B(DdbNhg<6>C!=8)!B=mCn zzw^XGNGS}P)(5~vQ=V2h>~u>LThPo72$y3p!ex;ztw55c!+ zee>usjxm5xHO0_g61>`$@{+>vlC~=GDc|U05Usj%FR0zZXzH(>CcY#3!(m&k;+0lYtNsG{=>|u(*-zvZ z4MRA2YcHZz?@$sUv}=$1_@Y%+wa2j-dgNNta9bL*^nRALsgIOHE76leXjFzzK?t_$ zin}T*r$d{3tbtG}(`6yhfUdO27T~OG3t}&OtfdcL7GGb$0n)Y;)rZNYSPp{ols3Es z3KOWoegXFOIy(?_1#7leb_c%opp6=!T}bfotZJ&RlDS$-_Y*Wmd(VnY7XP5!A(b>T z@sT#oGyiQ4#LKheH23O#$ew3@XBJGw1|5pD*UZY=5;?!E_#N}NVctS{0%_2}2HwgfyiL|_7IH>8%K`JxBXo?; zw`SGhR?37E&^$;W`k441pd&?Jy!FmGBy8mm1eR%d8?Y@f=XX39DueOkG%5!Mp?Cc{ zD-W!cwC(v-c37f%;(#OOzclip0dPLMv5JborYkN)-$=FXB4j3Y3v8d1D*=?H9?4z@ zD}^%(YA;#`dD6S;7VZb4?luu@$9ILYgRl`@iIHVa7wRrXK(&1V4wH2J3^P)RJ{Nvf zm*5JxY4B--z37m^{#5P#hr?WgurFpv?t~(ZuCnZ^$eh){7!66#DnLM~N$!#MR9^hb z`@hFRQo{^KJSOn7l!NhCw=WOgS3$~%K68u@L>Ol;zZT3kE<=?dM^lsky4K$ri%J)7 zikk^%&tr06klERK4jU<;s5!`F_bF{Eui^~6a=qs|Yc+jTd-Wi(3_cy4Z7&_TMP89S z{ItbHKF#bi69NFiR?*jx$!SnU^~Y^6)ZCJhwS2v&(i87epMR!aHg)W{KJ@&af(uk& z*!80yR_?>sycDNGui6gF@1{0DrsG@CY99b#N^`di7q}SmHYvF#rO{M5oXFq~@dOs= z$Y5&0zI4>UuhywEEy}fu80=yf(S89&$`OMLs@uemSwWZ-8}QOsKKLEFxFLWxIJO-_ zk_YV@6JJBd`6qFzsUH)=Qm@k>TL|c+Ik~tFXuBDNoJ5T z_K=#E6ZN@&Rn-k!n&qhd~j&V;?J?#Yq2(|E=Ls z@Rstc3iEg??#o}@LYXn9oXF!>DGqLlIsGnYv@F=JCueB4Z1SaH(9cP;)Kxm}<`D9@ zRN?av<|}r0T0Te`_mh5JW)yNXP%-n+JHa#fXobu|s9K`-((omwd0?OSI&9;eiL%!Z zt}2nhX>9jXR4!yHwpLA;wr$1~GhYL2Q$0^q9Vs!tU#`#d=VTvv^`2-yb}qllb~5#= z8CDqIMlW1eksW36^{hC66CfQCVu8kRMfACe&YUvE_&R!i(wVjkk33z775C3`i;C~F zeC>$OTLJcZbst88!DCIITw%a-8d=ij%{o=x?rgBStc03d2Nm(Kj6R zoRpZZHnmr5+pKo$~SH#Du`#ltM71*$IL%gDRmFt|-a+ z6jt23qWoqAYXwKF(7CX`%`ik^?8VHd)Oa!5jCfmF0fcv<@d@iNWPLn~?K}!SSHdto znp+gcGG(AuLRgb~`HSJm&qH-tK(HkQd`JkQGk3G*8}M>C9c#!6!aEy^D5LOV5oTmW zcynOVRGX*N_l8yU$z-fp0@X-mrCg`csm3?pN`qY-VwJ6G+lSYdl5|#ztE^Mx;TuEA zg2tiQWXo}_b&X+IBJK`&(WUXrZ4X>>v_hc(5_Z@^(vKLj_?=P_* zKdN9j$2S!+m<;)_k@PQs{1$XI+0p7>qB5!}!MQ{yYD6%cqHxgRha>{$2dgZm4c;UV zi(qWQh9Jz*Drw>Y3I`p2$iceN+buIVt9bF$#0b1!+xXfML}AhK4qbAwvb{oV*d6zX zdN?ik3VUp_VHfV?&2%v0xv~yr_nm~6P{;T({W&?iCQnBNzN_}7)q|$}%EBBDz+zYc zQaA_-bWaGxJy!9UaqRLR$icYh1%A@!6#M79P!f9cWrr4eTAEmD>@Dr5jUGemf?7#G zOmb+W0cbLd!t;q^PYqF2H*SE|gfnp*CWBbf8p(${#peNf2QZ5x{@v<`1G1ZPgMvlY z%rnYLP|3$o2{qP=-luE&sqs6cpP=9vT3iq+*ordVyTV}nM#-g%Z;?r{4*LdGk+pWS z$GBn0(f<9ekQrZg>H;h}CHcg3Wtaa`+Pf6Ajj~6RElkwXt*O9S_VNTxXawexfN9!}2F=kL>Hcvu2WN!~stq z<27)()IoZ-L)E)(T7NY?uLmvTDsL9hD2-!xG@9Ke+40)BlLO#S=!;hMU(iF2Xe1mK zWrTc7XKOnYVgaAqDo#}&OhevFbY_`1b4$!&2Pfm0^iHP&?=0kCG{Evo!K1<#zHq|NJ`%6mciG+Or1!|2mzC-A5$r{kY3fSx-K!;J^i9wC3O1io{x z>=jV<$DhtpvG|R?Z%yK?sUJKv6>&+c*ZW5|_&vwpqr;<5bk<2fyIiw^vjbPmU_^{p@EW?!Tb7HhcjmMym69O+EH|qB>D}=6oZh?6&2~| zX-|~ep>r>I-sUluyPy`HaNZ*AW6Kj~Bu+C=0B&D9iVY zvfbB3cg>}}d+H0zbAZ_ooK{^>t#A8bT73$x^&v0m#v#MnFdukEjv!62Kd|H~%s3V4OU{`3Sco)7OvgYN4&LsNWeSG381? zSq4AU{2?jgJQNH7ma7RY>q-<0gJP*Y;?|;@2IFhX-WvM$uP_{^mwnZmjdbEF9czcK zi~_QB1IUtq7h=W$P)$~Q`HAnYl7cn>v*5!-_xUE=zsLwIud<1TdiZ@8ertk0a~fn8 zAMk&{c6P#+z&cs>m`D8Ym@3Av>4A)5yDMk6(J&1Vp-zVN;Eg9-xtHHZnD|3B^siWM zk<~3?2GN%SfJ_Qua$oZrVQ0s0gDUW_;%6{5nokr$B|c^M{Tgi$Uf~*hmZp!EvhU4lz zH^Ea2x`6|we$CKv-J|?f3%`^Um)|;V`r!LgKV%*n*hziriPLvAgc@eOLJjr za+%*`iark+7nb_fz?Kfsr|WTpm)%9QuC2K)T(}ujPKakgd)N@$-H*K!I-I~I>eKXe z1Q1(Ed2_NlzG+kc`ligksi^GuqS(v~FN5QdDkRN<6z^hrN@ zq(N;Ma~poakmtRC-H{^RjTSGdpTP?Eg}BWlS0(1fU>e)j`_QBk^A*)RUqhZ7D<3Rx zy#c+6g^R%-P_10jZvlISC#!RG@-eMMCjb|LZK9RD$0&hE=1L6U{dI%B0CnldbKxYs z>7*K7C*S%=Gh4)8L%%kITnmy40wHfV*r4_{*f(s!CxHsCTh%KHaMcmA!gDLYn-y9j zKeNiu2B*jZ4|3rAVeAZ^57hGMF&1dC-@70bF<1v9%9MmUSavrjqr_Rm}J(rHDkv8pYU?QW8(`O zSJwiWwNersMc*)dYR!;wf4n!#9Poz29r7By+#0{IZ!n;xni|~ty?#$o`Y(yK+RbjN z*J;~0&h=xvbhb<5)(l;IoTOVTvv`)(ZGQYvf@p(e6fcC>36OtCs?O>)G|@L)}iZh2Jd^J=$nqv- z?@l~QW7!{f>6z|yjt+`H`P-S3E#ggjk#hi&!UTajcMi9TONh|JEMYNKQ2%+Aa|`?U z`jypGu00=wky6E7Ah!Y{b>evNN(BS8agRK!2#S3%vMl5U#lRDP@ete0ss{ zAt(`mAZjYQK~u4jc8V3nIAj^vOc;zWfE(By<9pE-*fK?w{v%W0f(Ob(UVqmSe>iph z_=*;`+3{pRBq|)$u{Xu@k7~3r1DPGH7#E*7-;)a!J*!s*>OqdgW?zwE?*u_t?uPTEusu ztjuBju`2+kU#ToL1RT)h2XYIm<3KXo41=;l?66#)8nWA?e7vrAiPpyAev{bUP~Z%# zILg$f>(~>Hh!uG`A(6qlOl`;`WFXK4vO69n)U`Vv?9Ev>lUo|yGD^v(OPiMYPc%`Y zSZ^yB^FMWptv3k2Pt&oMW*y54tSlonXkfxJgyz8;HSLh@ofxXY zC#NGB>^|hwLYKDBeUyd{5Y zAk0td3phku-cMm$7)=^y+Vyk?EMN zjvfu;3wIVBQG?g4>pQdt1ANg!z=bLrv||PJM>#^Eh7B9p<|m>i#>VrKUmJ3>qAWkr z+3srf@P;<1_8r_F)mfuXhcYaZ?c=cVkF6lSp7b$D z@r&%>ZmMEN>=eC-U}(X(tzNeG9y(k~Biyp8S*^-9`~{+YBfzP7M4~rfgJ#!>F1;Jn zw>i}#|KtMX-zK77Q0D3*#{~;;qN3q2q+UvddSJew;0CE4Rmu%P>uWtMbwNuvVIw7k zBe+84XA^M2K(Tj-t_?S+a8vC;03syT7-9U2z!YL=lt>K}$DZFJ)d^4*E8dKQ5%;7$ zzu!@}5J~s-RZ!cU0JylzSd1X!eE;B_MoO4ZfovR;cvLvRJsHF`rZWTRl?S)c^YRHJ zZrKtBi^Gsww)3iCaZ6BQuyV1_Ho6~-+S~IT=>@;yiuSHCWV)3@K)@Da(g9^hJQjnN z4i~RdLez;fJtnkJ3N-h!i5?W$BSkIfehcg*)f$DITT*4i9f|}+K zr4`Ca=xXYDG6O&kfEc`r#$?ax`GByQi7S48_k#VC#YShdBt{nvV||!g%T63=j}&?q zwrUNxZ!Kva4co?9U#hg^nxRC)m|(=EB*GMj;1?)ILT)~&?1fh<{kIO!qF3HWtd{~# zprQ%=(gpu5-3^Fn5`nK4s0%~9E+1t3td;!NL(uk9GGtSq;8z0z#-^(DJf$M#Qf>J4 zRyj`uzrI)ga)V!d<*#)3rN8JP@B<>y7V}@K^JX4kA>1Rtmc_(wto{iErl8CgqFv-! z_>>wI2z5Jj@6JXD?7Fd0H;_MVn|iBY2LJuDRl&agzuI=|B)er39vJ_?w$%0Pa%)WH zK<|k=639)d|iaEK`~^+;x1lpT-*^PVFN$qPnNl zspc>?!l=f24qT4V6zFJjw&98PeCXUsP;-RD5EGrhbmn&d8MN?)1o3&Gi6$HUYp~_m z;jqC&${CYEYswCSw-#ULRYf#9CH{iQcV*!)#{~n$>l$G5e53;5&{I5!j>+U7;?|cb z>ea%$q)Ehtmc;o@hKrE;OV=(Ggat|I)e`eWT3H?;zeU(UgQBs25TSl$Eyp0-O!V0E&m&w+EuZKCZ}UB1#|XLp$~laH zBbA0{sRAy~BA5?Z0pp*r5&kdwylaHKfUrTDoFSf=%m;JPKTCxiDL0JYi9*ZJxret$ zB7kO@C0FI026I5HD6obIJ%&YO5+ye8AC0Io#5(;8>>y9(7&c;rjr0=BcfxFAY@`g~ zW@V!vTZz!dGn}d4%RF{XrLKU z@>C3|99nE=VVsv%>hCzGef`)t7WfCMo}egQX0hSg*`XM^+yT=dXrtH28AA6e;7NG0 z%Hh+m500VK3;W`L^F2U?*_O~|TY0iTdEjKp(ZLw)w9*--?k$g(`;6R7d#8O!WC>7@+q#9jB^^#{&3(qHC@0ikA%z}Nb?Ii-e|tG zkc7LYQ2Tg5{sBD7sPz6aIA?INt5V^k0vq8Gq2&96yH#+Dqvl-MN$$1Ot30pEs<%@m zGha^xEjiOn^c~xlI0qSzs+NyfdrH|vs0(J^g~+k=&dB>t-Z(tmwU@d;qD&#tCj+lW zjT_{q$x=pk-$iWXH-wW-@dy(JaA3EIGFOa>I4@_}#L zjGVrHkp#cHX*ixngq9*8%(AI|ttoLj9Bky=WhxhLdHPCvIz|CM81_!rfv$k@Drk2bptU0K5h#xL}=Jy_NICoxd8l|7#UtsO)3B@*6eQJz>l z1XeLVHrXnkXc32CBei}{=IorjTAW7=?!$t;;sy5n(XCzN#F$W{V5r4H(-S#P<>wN< zvE_^piuPR605wy{)9tvn9Y1?Xn|LBf8w7E4sY8xfa2{c=!#wckh{SJuFhqhkAq%T+ zkc%XUJ+S7vpco_i1_{-z1cbUvOv^7ChFn?*CrZ<-NeqYVAM2cS@K6~iftqZGYZp@$ zAcyVe9js#ljdYhZwc}fs%w4`DAd$PI7zAmx1j~29k+omWgL+4ax(1wf;!!t{^VLV+ zksnDWtAgO|Z7V#%xSX(Ub z)ud$*L;B6iXWy}>aL5DNT9)uWPtvo4zTr02D*x0}caTQ==8|HX0i?hDVl*BjSuTC7 zKMws=7e~DR0{Edx?{~7Nq74N{eiRB1E)H&_?D3P1!Lxh51SH%6WaDaiNrT&`m%`rZ zlJN2K5;Nf2fbV9^-J;`e<>WKwx00^u{hPxAJI*~{tw)eL@)ww~Ee;yG#`3W(_>oKo z)jlPMrDn^lf~>2%2IGNIa{hLP^ghTofY^_cT+>Ps zpMqDZ4D{$9BSuRrN&En&2lD#mwaV#B;vZu@nULLSt;E9=En-OS3b7FcD!dTql|>0@ z1@yLqJ#`w$f9c#W(=0Ra_w%Dk@8{wt8CR9S!Xz-qMG8{q;&}4qP)I{=}I&E(q*VQfZ*1x1Rj*OG(N$jJK6; zfi^3IHhghw8aE?4<*Su{XQA`>!{D-^6wy%*F)Jm!cB4^VZUkVgLK@ z-xm0{1^#V;e_P<+7WlUXR8+XfQ-A!s9ZotWY*Iuj2IIe98P(-dT=PDCHCaz74i!Yr z_66_NjE`JEm9*M_{mJ|O zDMRJmUe0ipTUgFc%ezt71Z|3e=U6jO1g%v$ivD|XGyRoismlG#(UH|nx+?3!kJAj* zCK@{1G^-T}=uD)8m?-*p@|U|`e!&0F&u_9^7_~KsJ|(i0xyxs;a{S^AB*%_Ue5G;@ zSHy2;dP2#UhUcpISQi+`rmLvlbTiwJ1+D#gU3fj6R+8a1bH5WyBIysNw5|7yoxX4O zKP6|@0NMBD-#SY>cflD2CONi0Y{g4WhOqk;B_<<%IBMVIiR}~Q)N0`;$xh45Q4H25 zXl91+Q;t^@3`0MmsG}3bGcPI17qTOFos>w%|Mz*>bMWt@0RdR8$(!lJmMJNgDIY9T z1}rBwp5WHB56}H7XGfIzuZfWb@;HjHfU!Z504H3H&OE^yk=(r&QGVCFCClx*{aeF) zuSEX0u>Cv!_dWvlzp!m}OOE_j@nf&{`~2EGaw6tt`W?%u$=B1TF$x%O6wihQ(+3je z~|J^V?WrU6}g4NG*?o4A;T~6HStaAUS|2E00#VY$738KF= z@4`$-y+GYd_Doos^yd|tT~>N)l;;E~udZ20i}TTniB-v|%R8^ArYTmp->A*|N`>XJ zXpFn6Elr#`x>RT8ogc{wiXhYN_x*}dGn(bcsLyw2k@bAp>FFxZf9$Dh{2#O>(oyIr zfT&qX#H;15D$K(477M?j(t4K_u>Y5oT9Np}^}4h0JrbB2tE<%gWuIxJj@1TtP1}p| zFV0g>8E<&6sLMxpLLhBHZQdMoF%#zJqPRM6d1MEhy3UKAe`Bu7ammnX*-t8_?T5l9 zzM2MX*DBs!bCG;ydRc&4L)(1TgFZQ9ny4&U&qZ*B$~$XlJfQ4zcZK7oWqCqB@t69v zi~k(%*=6uWRyXtEbQSJ2qr%PP5Ow_SKq+GjHzt~2G8`Q8xt8LgPR|?wRw@uaIktl< z$dC~bj{el~+wdjT6^HBYkXit2Ykc@DF2g+G|oJLv|$% z%PdOfO`M%kQrwVzxo3sB-Qkg7g?Yzvnft^T(@y6@MVK|qo?^_0y<4Wq&4*?{Lj5H% zMpI&$Ss7J^p6ltAnX#k2Lww%i#46;l_0f!;=gf}^d+Okq!k6|hG@S`(%aHDEiKX_m+D}* zSmoY)jU1xyM_Q$>EcK_L%&MaUnz7*okf#y7wrgBd#2~gBQGF_QmEriS7V&Ga!49}= zTYQrkydtMR@Gqk3Dvj1Q(FRlH4|$SaZAK>pmKPJ1T!Znt7O?mi{L|pGmWk-X8LW;h1KwK5A4w^HnpJw6uz|V(AOR>F81MK)GCO-JnKI@g-s1}< z+g9wUy@J3cUdUapD#+RFKQhXBP&yX@Ds&qn<1J!)C7OBDAmlg$RHZcUJk4r%z-qwU z4#ph{ltucAvSI9UFH2QNe!K79sA(KEc`vTbrN+|~=cKmOkQYlE0(}@#R*N`FxtnxK z7K9gHu4fMreMy(8y6^#Q%|63xyyNoaCBb~{j=o;S(sN$ zaePckgYnN{>E9J33G^n8Z4Eo#R{W~&y;$+RuM-3BNQzw8KEHR#4{a%tn_sq!j+<`N zG_}$^%9!ek$RF;B^h=i?yaS^NAAU;rK8$H3MBY7F%L*^;FV+3rRrf7tstY9WnNZCb z+zgF#d(mCH*i+@o1Kb{E!E6=dz?Wi}Mn|M;sTqmv#8c2hQ8T-I3qwkyX_h|CGPy%6 z@TR*qvZr#;vS8b&xbRl-q8cCR{ZZ4mS8~Y)1bT)5<#|jJEYn6q8|i&l2}gq_u?Lvl z6`_r^Z(3Se_()Y@Z@$?4C26IELC7^~n}8~Gi5`Nn#UJ27rRFByqv4EIbK0F##Q|_J z?LgFS8Q6jN(=7~T;+Dtz1cPT%DFV2blq~F{;hv{4bc;|pu-pkn8;Em$f~^Y7^HIS= z9qe+*3))4~2{Ca-PxD4z=Q z`gM#R4jclms$0CL*|vV)pRp`J1FM2vf|Fr`GPCuv&Z5YlWY@p5{>UE=Hk#nV76zrT z1te>h4=>7zcYV_w;hRBPU(kWtrEX)J9XW41HbTj_mg*u4yR=JUZj){tvuu?`=i}a? z>0=GhLc;eCrOO8(lEoC?CCu%zs!U&=>eU|3rz>0sONV>T#^7?nMY9DYyww&wbr*dS zrO6NWjX*!oO`r*M&o!Cs!`&arC!?(|EB&k$QO423b7whm=6>gGgJ~0{_vBkx{`W3jj_{GT!aWb;mp50^ zU2{<5LHfzZhaauOOF>)n7g=gvRUU2hE-BO=ze2I(ME>+}w{x1@MxaZV8qf>k>0LUc zZdR37(;V1fwIdEd%TH*wCN557O@*^e!7Pvq4Gj0Zg<;5XmLg5;KpQN7lvT#$QrBL6 zR%tj6Zw{NN&i38TSHutzXNdtq*5a7`ht#En*i7_?CBEsS_}c?X5~c(=bx= z(Qa^~52vwoy;%+gD))W6PmUx}bgirUruycXOC~5ml*vpk@%ff>!T$jtsyYke|_o|Y2H98QJE&l5_z z7d;a4TH3^8H`7-{B+fA!Z=*DTUx+%|b|@LvbJ6Yq`#3Ymk;(^w!;;ow{_84jnR^0G z?EnsL$_G78zfG`pQh9Z9fDJvn0qEI9J^cx~j)&-zr3Mn-DCa|MC%iW0(D(k7icbl+ z@#@mfxzh&ZOI^O(&zRV%vLgDPLBvpHzy!Hw%u|u6ePGYT)+g!wz|JKX41v4d48RH; zKrJoJyu8`~#`}-;Y8Q4e9wHnz;9T&cbL-h=kP9+2#|Xe>x20XY?_oqZD3`?H2;a4c zb%R{S=G>@DqHA`t%?`s>xd!9wmD86aPxEDP7y^81Hw;Ir`$CZMPK$U3%z8|VyxCtG za1r*;1F6IN!$V7U5~M$6oDbue>)WBh9zc2sM5xy0l5Q{qwm5~9r|EDRq5 zFg4fCi}l!W9LGi){}*5H0oG&^HH;>pvVwxHNG~cF$ci8d9VEIc2!vu#P>QHD>AiPd z8&yaY0thGs6s4&2mRKl3iqd~$KyigYbDuCyQIXy7H6lz6*9*PRrEPE$7J+Q!grs|C_l-Z^2w*eWnLaoZe zK$EBBjKXQ~npg_#I%7}DquUO%hcsOuW}Y}dr+HpV=X};9d-RZ_dHazNmY-4O| zy>R2&rP;LiYjd-+^jp#^^%)?bV6%DBVG{@Lb}0Psy+Y;L@b(H2oy`SFv6oOUIAPuk zvvsRw={m&1tbESr{!1$jfn!cxffZ}_vp9E;f@`9+9=ND7UKfVmT7AI)P2lLD*`*mEOHDb67)kENSvrJv z$uw}*K+U2z0dVxw*zZN;Rl0sfwwx)x>#K!a$lodLmjWXC13(N7q+cuqW`>glGnnsW zt*x-xy__Pj0dD7)RbMiY%62dVNoBTcqMXhJJiu$avBtWJ@{yApb{Bw zj%_`Mvo^!d4);w0ytJ)(f(bPgk()ud>Ym(G;dB?6Wg%ylG+82^72dA$>U>mxG04rL za{vWzt1bDMyDvR80Ex3kKpO%N%;u0e*MVF!%$VsS>X*GKY*qTc^=DD}@$PM1IRL!<0@KTclO3 zNYzQD(QZ#E@#F6-V|5y4YTEU(>%mK(veJe`?~e-M3gn5J;$ep$gGN|6IZbu)JLC{e z&I&6YuM5&C#)`-R;JYA22Q1~vcEe6t`cX}HJrJ>RTiTV|367V5Io=obSn@NF8Vwi? z*sfG5D{X=@uor6hoL<-T?QJS}Tn1Bg4d7WVlNoh0 zMW)-7h02f6dA7B7d#L}FYv*gkmIE^+*bDe2jHiU5mnl-}WzFRV#U{SSo53ENn+a3G z`~zJLk=7|5FE{V(q(1&pznS)fE@ztl1qQT*7GOd>HLDR~8Ws(5VL!^2bZ`bBkEYb+AOFl% ztIk*lxr(SO_7*0t##!zHAPrF(9C!`An{iSZT%kHDaD5FX{e)K5=6O0+w%RWR#MQTE zp{t*1YjPnGPL+qwrDTGP@tl(+sr2x(DeAJCfuN->`Pj?pcdHPE(L-01&##Kh^6W{u zblai*&=u`(or_YB=QBs5&>+io{!H`t)iwRf&XYP@&mc2H6V&fke_V6?>U^Dj$)GRa z?m6`{yLl|)p21LW04pjxu{R{tDeE7a?4M`{=oRSE2e){S7_`kzPu6SaZaM6ejio8b$L{t!M8Ee#2V3J@Sny#G)v@MH8U2C$7e7}RRx?&Iqh%S;d(pCY zWUas?;L<2%{(+B%-X`0IP3$jYQHEK>h|AL-Y@|b9OUm7dU$JdDH5xYCz_aisn4&Ci z$=&&Y=ty{iuRFHj+e$~?_C2}~wwPr%geR9kufC(E=bdut*nG9_evwlWiyn)N4hq|` zKDy3t01C9ZOY$UymF4fnIMXtv$E7|i;_K`kmJ+$^h8?L>KIoJ(BsSxXEHi$f9phaHv>ut2UgXcnuSe*@j@%zLtRjSK0cC7dhNsf6JVNBwQiw2Nbf`B>X}d_{?}OC)Xw zznXY$oIgPk9%l!~zWM9ZUyeuPk;)q+tN6DhJvaAsm4I*Mo2vjKB9yYCv9Pi@v?WU2 zf)l<=T~N5SP}S0$gA5_I(8@_fyumq`mpER+|3iv$E3aP?Su?5&?WzwW@~z(m*w9TT zo1TSLj>yEGE0@w|*f>4>(=lM6nU;y-XTHQ=bXe+3CiCzg#;(PpBL&xmkuO?kMMtm{ zjely1&JIg5$p$E_m=Bzg>DS=s;46~wWNts6d19f{36o5={uq{dT_vzad*NH=GEYnt z0_*Cy?JZIo}D*;@;YK3!jjscib)i>z&BLlW55^ zy;%j3(f@`&{kv`|a?gT%&>bs0Gt%(Oaw&pwlcZSTN(_vY{=oQ~u)$9q9zE#VZcaJl zqNb)m5vs=_=4@Q|A_6C8UH>5=8>j~2ad)D5jc@e_(;8R`k=DL(8`GT|3 z&tADl9iTelF1`2KJ5r(Qc_4KZQS5i1wYB^ct_gzl2|KWdMa9KMNMkajdj4i_u!&+- zE=*}JqbobtSA9Z<2NczlW=8&blm27B;hBH%RilfEY_@8sRI@iKE<|HtN6>AnhPZzt zg_g~z4?22X876l(ue9BssApHz{{8P4+}H6BOUAg)^X++s^Vh1f8^dKLYh{Jw%~w1Y zb)7Fu{SodJzU$CwhUfg^nL0L)St7SGwor-;`ey8EUG(jq*)$7Os{2=jjDoruAoenMrxt9d3xU7PsZ(efcX{O4QAWz3O}i4 zcwxc>*I9IL5{4VMm~p*0n!L0%R%&Ap>wSl2X}jZ|HCdV^wu?S~DT6f!NY^$?ye{$h zWn11VHcC(mqDjYLTHyq&CS4INWUnoq5$5863~5Cd+T(3hvD24fo&K`e38yZ!9<1ND z1M7s5Y^4n*I{3avr;}S~ckvgS5!HjqXp?jUq$s{klkS6jQS9JL-{eEWk&JWZPM8{> zjmhOLxZ%HH$60n<{N`de>`uG%HK1L1KYK#V__hk{(M@SNa3(R67cm{KCd5v%DkJW8 zhs-!)ebV!(>>b|W&1tTqeL`P$v(_)_oOgNgt8mkzq-(dQ+c4$in}nvfDukXryG3J zI&+~B4aFK6^U4~zl|9de8TKA0%z78;b zPfa=;so90MY1542o4i(gz4lxOV-BF}YbFuzyYE}+r~*AaDRa3DFENEy1Om@Q^IA0@ zzODd_u1UX#v1k{sQ2L}v`Gigkhtd5y1fB}|>=`!p?O5y3Tx+AXI4@<$-_iRJ7|_Ac zb@HVlHB|0Gb55zK%de}DEuYrii zDcVS5h=SE?@;u%OA2rUJGoy|=_9kbTS-h= z*@`&M%+7bYU%HQ7BD2V@b7~H(a&f=scEj4{U`g-2iLF)4NR!Tq?t3qE(Lb)gnlEe+ zW4f)OI~X%EB_9Gc=uA@Pa%Rb>Og4G5QAf-D6POa7oZRW4L=UF~M@Uzk(WHB|YIbIT zGFrsASLb!>R!!6Z2L%Ow9dQ|RqQjD1v_1i+OXc)5CLOH#Urz_uD{x)JYEH|womUP18&Ds{ZmdVX!PluT zxYk@4sM#65Z+#Wlh1woqEgpS!G#MTF$9f{Ji?Th{AnvPY)MNjsj81|inZWBi>tzm> zlj{1djvi4IFA)3&R^O`)!`tJ=9X+{T%WM^~G}G<8DZIXRGnT18tG!`-?a`a*#@*CV zs)n~hWCQ=Y&cdCl?>kDlGI#Ywza?pv?yoE#oM|$Y(poPW4cc{8U!Aw2BH9#^WDMV` z=0F&tPhIiPz2?TZF1t{L>&o7qryYM?jHjTx2Q-^YDjO48xm~fgh327^LN?_#MZ@d6 zw_!APSPBHYx11DIfE)X|jh#P(4~)tu4sz*=3EFi+DOgNs?sic(DAEQ+ z+>}&I=#%XtYzw#vCxxs8K|RETCTtg}F6dET)+~4*!J^VIq2=3U=i0zUlF8_+JWOxH zse^NpvxMF1?_$2>iZ`;&EW)bp`ksi_)5gXDUT2)S+$K9J&r-)0=1=J@67d(cv7Z2s z$*XnDGyak=&Rz|Z02G)MD39&HrauE6%%V-Ituy7?^RyhgLNI_87^;6|d{LtKBsMQs z6nmqL;WQvSz%8YaI9z8>;z!Eg`tX;7(y=pbUj*4n3E$Kt3sj6-lq=+o_ce`EU_fbG zwaQU}TqdYMH4aQD5Dt?0+lbaO1tU26wvFC^J&|*SMI_~Z`U~3-m|vCz-TmxT`JL)Ul zprh#oW}y9;>;OBrCKQOoBCzlG*jRM#Pgtb@`IKgWH(+P=PzNEWx+15>->FIc@PHjP zNRc&Ypg&g8db5me%gc*nW(3~CR1wdb4}d=lKmnd{3G3MfeXG*Q7SdO9JrF$v$q{0A zHV0lMz*kY{Ty}Zask-__hd$Zk-ZX2l$rw5w08etlbYN5PxRTM7<-E2$2iPP93w}Ak zRFAkr4!HogMN(Td9@n{_jBZ66rpVgWI`YeAOLsZm$jmWpvCljv+;TDYq!p6zO|iewjq~|cPgZo@ zf9O={H(Yh~U%CmK)PWmxB&W#IJ@HVy0U2$mtFN*>i;Kb3q&G?W2!JIpRatVsXMzns z)7RKH3)k_|F1Fk4^u`fykt*J*^sXJ$6UGOkcUB0q`=7C`(yrT4nGBJ2m+%)#MM#Z@DZ=Vlpy?ITt~-J9kO8mA>k=TCM$_WUwbNxxg6dZU%o%n?)`yMZoLrop(~`~f=APd{eEBd;@kT+vtRe6 z-Je-&^`yJcsH)EfOR~nl*&l$|KAt}oK5HRNnMpTTu5yI+Dm!u52Edi3sUeR`7A|~N z$ccn*UDFWrP=hR->)CDOgb}+6YbRvN9R&cr_@u;Bd_)0k{D2S|2~7S53>5D@MTBo; z-&Yp3FAT6!D%nXx;@-2);GVHx#=IP-TQN}rZJ5~ht*nSBV~8K_7Av6jo%VzLD<9Cz zO)hV)%TN<;HcNxWuf!EoO#{*chleJTq zT7$4|xEpM(zVRiba>b3{Qx7|wk1h2Q=6%#gju%`WieGZ+vaIF z1&$ni)G24#o`;V|OU<@SXmV6ahox39Hzd%@CR=E|k|8<~$SECB{P$Q@04rcn8z&#? zZI*`-&LlaHqFqt()w}uQO`%>-!w(_c`?D6djPJ_y7K&r@z`qDGmCSgZigy%4J%@&( zDxseJVwDfJf|dvFS(@{TPe*1xRk?fK^M-BofyK}eTYafd850qydi`Yn$sFCsoz>QQ zx>x|V$>1Y&WFMHR#SyG+T82rZy)xEmsYsIS5D^*P#3`2nZ`7EfexNp2k^{)fG{o!kjJht7JY)^R@3d= zr4MP+U&f%GN(`Jp124`=^2ukJ%a2I4a31vD?l^P9B#sLwTm=zw?=T9Nnvav3k-E^q z_+z1&^yDtn>}nP!v@GnbCLOG+E$4e@c$gviQdJx6&jl0e%X^@NTjwuA+2mDG23nEJ zi)T)Yc5g|GYHe;<47dgzE-gW^ZxNVGAjx11i%T70ba}hdQ8!R>obNwjVNB_#^uVpjp_^PalEYb|$ zYnBL=3oE{u#}_u61-Z(n6AWge6wQ;5b5D1JHN&$lQSP9mB$_AhzmjN6?j(_=Ga=Fo zd*MejPN$Q1)cqMudnnyX;a)R^O9qw5)0w{1;d{&zEMXVnM=jIA>&&#iICv;52c%UVm86B@<)Mp44S1wySKQXstd+gyPvuI zHhNxs>BIWvHmn+9pC;WIg3X%0@t0c--{|746oe2homWnd(Ww_Eq@U%V^stZF%^MsYu4t!_G@(fQ4YYLB9ooA?{-DfT3CtEr1+R%IQoqC`V{= zv`2KJxt5p!5*uMy$uYrZc&(i9Taw=7~Y2bDJD#a@6o0`#SjZrLXEp)1%t>W8+%);KtlS@;m9>xFbJ&4mEy;6qvOt z?>+EZ+DYCRun^tQ#E4Kww`^&TSxQZk@a73g(e(Q|3FUgzwZw>7Mcw`L5%(q)7QU?S zA@zGA2k)SZxuqX;8Ul{IW8Fa?p~+dzb-~Ha`s+?h9~MVz0jdC_)N}A10*mi`d@}eo z_=hvNPMdA{BY;U%Qo|PFZDvV2E--MCl^gG$)zg74-m}P3j}b6yP)A_7)+M|Px$!@i z4QBboArcDCF_zr(;^X$gG7ECRk+RZ4qwHB!t`iMTt^K=5Jtyi9X758Jqj`?E9KjHy zDgm$3m@BOJ%}(Y89t4A*;|B~szAy&dP?gOObNrE!#~0|pp)@>l5V$5+NMXPyH6~g@ z!SvoiHw=#EJiZ>~w55oAVT)kQ9Uf!X#;8||`)f|CH&U@G=h)@@n12vHZ@N;&s4$;U zW1GN(1PJrIO%xupqhW^vhL=TmiDk*jpJUr!-Z7>+@jA&#hI?71UHb9h81tzbPgUWg zgw?9QBApL=x~aWUJt!*jc6W4i<;TtV>kK3{U{N%B$K>00L1`Q*{DIlFQIDHf2Y$Yw zJ(}34{mUn)0{#pCQ4`Zt#Li%i7U|kt+TWEa`=h*Wy zShqRe*?Yh+dzXx{`lN}<@GX7+M4m@}Pgg-Soq*HvMyq0-{W>}m&|@Kg;Fj$jA4nl*YnAvIIhl;gznQd zQo$~UQ;u`H%9*FzlI)D&T9SG8q)+3@=Tj%M#c|_oxFIxHsYzit?w#A|^&2{r$K$Hk zl$*k5HjqBz<=-eb=07zDI~@L^a!({l`AcgHIzAnHr{%-$R$kSYxL%D-9JgPeJWqm$ z8ULI1%VrwW^L|(HepexLCN7G~=jEa;KZbevJx?bCcM<&vR-Y$)O%BczPLv0-Y|PAI zNk9g>mJ{BralXI`Usifa6^uuAkysclG2{Ki?i#GOmF5O2syz8 zr>GDg9??-PjIRqN1rZHhQkHa(FD$@~9)4N7=FVx3g+DYg7t1`UPH=c#?h2#e{IY;Q zfAArKA+cR8(=RI?J?2jein`ksP920FjVro@Wc0Pr>SHqY9>#j@i0nicJ|b66W;V-U z)uk6k*Wm51vL0dHK%-Y1(=wc+p+4U z^79P*NRGt%R>q!+58cj3u*I%LqX-6usxIPQIok? z<-R^oe7GjKO1k3hVgRXg!nJ6l3+;JG`oC3-K*y`_bm&NieiSjD&xAXFYy1Ux{G1@rFHGQcG%N7z3bvN zi8!{BzCBQ3;ptBM_>vQ3UU!x}2p>^c^3Jf(^W+{$0XL0aS`6dE-G!}rp7m0ptWR<5EaTO}0A${8?>dTftSv8a(W!MUykB5Jw;!I}O?>~i+w6EzGFfTQ zg08we4820?*^!_rYFOl`0nf&bqj=$Lc9 zgg)~IUr~8n5b&9uq;75y(Ef3rPZklHBO+4e`?F1|D4vS_> zuMb4euesoMISaAfD8c(aK(T%%ue_4qhb4K!_0|X;9C%Ow$GVO0(L{u3AVN^Bt>&9kB9lgRX#`eFA0_}o zY^WS`!x6#{ZYK=Ag?7VXNqpBs@&xIaxgo_F7LbVU(1%H%x^mK&h-BP@6XY@sp2%R| zf=JZfLs+@!{ybck1EeSQ?BLA6_b&v43UyeLB`mOa1NSt5yoGia zME!7of8FY!i66m=J7H3DBjG>h8Ywk#MX%3ZY2Wg8lZdU3Ok83_DK)7O%)(NA04ffjmJQkBZ2v1uApaxhhaCW0yMLzc@6t z4g^Di;R*_Q7e+}3H^VEpT4-1hx>Uywnc92ax=k<)w6FlxGutAL z-JaKxOpY|18iqF(ZO#V$&(I-Y{clnk+*QNQ1e}zmWupqVCI;=9hif;Z*HcTA_uB=k5{Ss({R~H;=Hni`wNeANQOXRnq)&pBUKOX`1)y z>l@0|OibuS!>Ra^Q7uzg_8#Ucn88svK|dd70j7^7&+p7aMAt@KF`Tl-7#6f`7Ztox ztEXIr>Kq~Xzei8&;F*W1mH-JQyQH!(T28QlEHo>OYPk!PK&2jIYC5*-?59QnwAk_J zs1SaD#b0(GUnG*-e|-A|>*SXTE2#NbC-G}$T(r>Xh_ zn~y4V#k}6wOgnUoj-D5`a=q-97-{M7NKMPM@M^x4*0(UV__?~ss z?^~{t*}EcluXAq~68FuYi@a5DC;BfknVeeF8vtU?jloJw2fjxLZ*+1I_tbqXDvoQR zDK&;AXFJT-evSgz(p!H7s<2DfY`>wTE7_Z#PPWAxgwn8BOnm(*^PY$*)#7-cbIke+ zd{tp8J6YvsI&Xil7GBK>Xn<=y~GIXLJJ2B`ZjL^*p)h4A#- zRja2et6_m2fJwFIDSnPSqRrl0)voKXG=)1S(g$|R z=Xve|8EoY+7-+8!cd(P;3on@JA8HVd=sH_-6i!eD*am{mx5KnR@NEyejs5D&uvd81H0F@Pw7s7`FUcZvf+i*i#l>c$7(9$*fYHI`c|ouu@t=TOk&5Utq{eG z9F^N?&%(#X;#I5K3_GQsHYkHK&@u?Z04GThgwHlKGm> z!yWWA+#&?t0b%c{+Zk+SIJFU&d$qC-aFEV21Y;ky!)Al)uyb@2bW9A-ytNI`+ak2C z%2%>cyF(P<&_I@gy7*Ojo`s>Z{UV(lmada5=T5`=ffjDH zjVj?I*n8G^n~~dS)-lIRZ3Q4$<_HUrK~(S2kytMT>o#Zsiz+CV+Ed(D$k$2>AieeN z;4~P@MK=I_1jL>JzE?}0{(|!JwL-3)X0Z%mdx>Wf%&_MxezkBCg5Z5)sOY75sR5&7a}Qx~(4ciXBfH?0 zMYyEn9l@zkX_z#r*_;Bh` z2gEs;9SGzVTVDdmyT?sAfX}S^2Mr8%hQv0e1rpGa69Ah^(ZapwzUCQ$1RpE>t9FS3 z&$BQ#(9qETt;ddVCBoC?Mkn9fUFZLTMj2mG-oy*-<>2)Yb@K?e8#n;$lgYy7LZ(B$ zpQgbaNojJ@X!Ezh_6UZ05!$oHF<>{Ic^4G=g2j|x*u?D=Q5$(9CMyn!@5{R+@Xw2v zwoHYES)9^V$E56n5s6R!$&6+64A|$Rg+m|EPE_Y;eY;aIQz&tdPAA$m335L2L1(a|i+*3(q_Cz=bjGMWPT z)MZ1L#-hTLZL}-Y0(l~%xRRCGN zZ<(erX;jNbGsfq`&*g5dTQ8{}!2*U|Fj6=)foAO>R4)T^1sgx86Fu$Qj|SXa`l0KxGHVW0g(HB6S;A^&l@*_ChyEp(Wvo zC0{~kvy%Gfs$1SCaiRWP{#>28GwX~dzx`hbe+7bn*Y@0}S|*a3+-4XEMmSY?B47~h zT7uBjcj>x_WPBh+)kUL=%@fTxftC`{K@;FYNzpq~$-+>SKEtz4K*ALM#G8Z9YKi$U z%NS`0%RCcB2}`FGNO)-ql}t8+RGGtA3LjH;a{2MH;}QWkalAcm6@h)bIAn`tIJ5?7 z0(8O_cu4HLo=*U8mauG)OA)rng<$x$Dw9?s))y~7ywVgYzMv|07r=M;Js3Pl~jj0gGkHjgmxpeRQkD_gr=I-5IQ~Kv6t_EqTE7)Pp4z z;1a7ZsoqqBh|C&%XOV2-cDe<9(M|!kKnQ1#7f4wgD9Q(LZpj}j$v%b^FG5GQY!^ht zgxOpJ_BUoD+S+(Cle~Er=B#uG>jhjHl8DLv{0 z<~J~^8npCyZC6fmMbq<>wvcGK?c;X)QE6HN#&%?KFZx2+m zvw@|9ABjgdAi*IsPt{pJ7!d~6$Gj~Z`0*z|4ns|^fAv)AtzxTnl&PkCk(!=uKKzGW ze3ae&?rM>@Mctv=Smh)m^*pK1!4)4L>JlKYgjW0WA+vgrfbVtR9cSU?x4Y^ioq=cD0c=J+!i1)7qrn;~5EtUR1k~#cT$lFfc3)hw;Ql(kfPART@&3q=vkmgBjobmz5A2lNV&5i}peu!lw!_kmCdT{-T)en?``45zy z`46u}V#m=+U&Omrdl-TMKjpzy`sZM#a~OB*ix!)F7pYQFdjH7BpHpf3f0>FJi9E|gEz%j` zX*v|wHuf-`q6u*HKYf*>tG}JGvfNq0s?RFvzY>2Tj_o|I zCRe&{_kp}})*HXJsY8b7LD^j`JXKWV{5?su511lj$!zKI&fu(^P= zIpOH|LyNzW*xoI;X$k`P1@OH)^2b-3;1tIsdv3^H%UFducYkGpOoHHI|1I`vr?Y$l z)FK9(%4yB7k`Fro~a(eYQeJ6M_|2 zlqzt(ywJsrG9d=k9i`)J@_o@ zCxl{>ziqYIeA@*b6Gmi6ET&9{yA7nRfOJ^4FnlkBpId+2UsKWUJ_VmREb4b)1`%_K-5g)5~~> zC=(ai&$_6JPkt_<8U`+q&r-*fEv)HC?+Ss8`mYt+X-5BTDxS2xke|zAF#N;l%aZJ{ zXug_?d748<_bwAhu&oFpx~7X=u-(_x+vOL#Je#SJb16 zblq33%}R7mDosD4JoD zQ&;N4wLHzc0^wP16Ge2ZT56Pg^RjQ{C%Kp@U68W~Z{LA1ej2qE5|@7^+W41+m_j)G zN@-f_u2A3Oiepz6P|@2ybh`Gr~A>irJPWul-&|D}&^r+tpE197~b&HWXA zXDdJflMX2}rMvL5!*F_B6P_+p&*B^XoYOHMvv0<--DDC2k%?zWyTSJCo_t}P-Sx+{ z<9aAhb@OztUxm(@Ux_#`G44oYsCwkNd7tzf6M@$k!{Z5(6Z;6?s;)X0uY}c$bmML~ z#<24oG7Sf`$F{$-fEAAglUJwECc z_bb_im$98+UdcBMh~2Zc$LB*y3MbBRlnudSrcE9unAn8okuzNhnC$HG{il?&{M=NG zAwu%TnkHR0AOvHbFxAVqp;(nB**f@ry`_Go0fxP^EFBSnb{-CfwkZL@vwn!A7F%U zDDD>&W~RrkUj*LhZw#*ny^`_wzk#n8{NqK_$JsTp>k{pT<8ehke_T%NZmb$Zk7VV& z6HlW1+z7)ajb_awi|DK2Gn$dSoTSjp+rQ!JR;3 z_+w0Q)k~PWa~3hwkI!}4aYDLMIRQL?{XtC+zSODG$S9uznSUkiCm(}+P3>l0u#LM( zco8?{jwTPU>gu0d=!Lk>wKG4lr)X+V5*)T^>pPb}J)F8Up3Wj~+?X6KWlRGWB>xuXwKX^B36d5Qx{H%^Cf|LijF@NYuS)@g&V zFZdRQgwluqKnWHAoz5pzL(w`1&dPo!xUXNi+#Y>nk=S$8Ud33`bs}k~&Yl}+xvf1U z(R3%s>^OS@WKaeyN=U~Ie^Rd4C>^_fT)pxq589jhE6bi*LYlz8l{B(Hfk>MpHMS3M zyFF&&5cGuxx#E|x{oRXwjI-t0M#zY5o%~71`fbhJPx%_FIDxw390iH_mdTo{#@PdZg^i9qo8cDlPvCqjt>V zq;b)*5ZiDx#j0~_)vwZnZ{WUX>KHpWhlY-~2h@k52@I7juJk^Yj171!#|aDGGV$@y9P@zWMvW zdjnMGYL2W0yY<`{b1_r~nsF7#Sols+TrZ)!{mWK~R98qy+1*g~;Cw!OBs)itr38_S z22KGEZ{l*kDF)3vnhu4CdtUu1#E0ypXurtx(Gz;`)sj1`S!Hf;Ag4fZP3a3rn--)C z%eO;?;En8)%&V8h&XxO||7rx3*c(z;^5HC$LHC{p9B){ zL4mOEz~$y&cWGJ4Z^GhCpAu!%R*#yZ%<_pY_oCMxvT=_|NtB-%fX3|Qf z@aVinw4GAMGr^G#4Dd1D0G1hG&)VV;g{FY7H)8{5cqu7mep!Q>JiXO7(lOsr2AYu$ z;msnsg6sWvp&uR19nD{9 zauO^^$p4sQe-fx1lWCkCIy$(%^`dXqsH;&Vt~yVMK~F0POk7NJbBZ}g-Qz7ZaR2qr zSLR^2&nmkHxB$;^Iq-|3T65yJeO#XkqBB8>28M?LR?`9#^B0IhY^6Db(7@GoR6-*= zW!0&8`itOfzuwUaWmpV8?Y7Bh705U9bV$$ZiisZz90PdYwckV#uTEl5XYCQ_j;X+ zqmt|wiFx%%A@C{+UF+WQkIXWzSKxS?HLB#J#=+c<3)aer(hy~VLc8?+*Cu|!Snh9n zM4A4x%K=>9Ue|vnvTXQR!i=tQ_L-unjD+E|9KkR7BHuN#ty7J<5+2=5k3*ZqvS)NE z%<|PcKHgM^Xf&=qV;@+oozVW8zavlg)!Ma*zol_^*gw}^FZnm(6ZnzwZ176@4fYfJ z{gia62-E8XdSg{JhA6Ak}{LPbne*lTxN&9J+(0DCP_*Hf3{v=yyg zZPh;P6<)VqS8_oS`gFP#M?fTQ$Mam_0`nqe$^Iudx5oV2Twdbxq0X&>t%D*nTlu1= zDnx&=^nM@3kSN%gXdY|rcHKQGf1POCL*!U`x=l8j6&X8wmd!8Ilw6`FUAD7E)KvFMCt(H|8)kjyB`96?Tbb&S>mVXx0$y$0yCK$)96km0>q6+OzTmyI|@i zd5MMR*awQ1XLmu~o|3*C=d+9BZb0pn;7Nq`H)aOcsjflYq2kIvp>c8e9bqFPgqy%j zT8P>KxLrP+3GA^4U65;uv*%d$%G0q!6GfknzW6j`44IZtJLls4=Cyq$L4`}h7+5-c zKx+S7<^iZ$3^;qSVu<{Oti=p|+oyb=mF^TG!N~=VcwvnpSz@9;Il1&?|cP#DNA4e4#-hGwhs0Zp^7D2E4)ItReZZ{he;*) zwOu+;+va9X(mHXj`$Ue=2E9+B)?;k;!_<0xd!I-C=-1Cjv(9g$;908)l`2?1L1{v?GmJ3x5zat zriaMy{*jmjPOzfO^#nA|xo~-_MS2}8&bF>B-$~O|gZ?z2{7b>%jQ`!pUGhdMK%gJ# znd10IuS41D!NW%7QjVp4abtyZPr8_=K)SQM7WZ%~eOzg68JpA?Z0bu&S zB#B;2==vi^jsK?l{sG{z`q}Mi;N|(bdviTA^9P7R8~w@@F}@<7`=Cu?h~a*>+I3X5 z%TbqM9c_L1fLFF%e8`V|gx9URsj^^EFH!yDbqR3N<&nAk42%EIuHAuSfnvY;S5Lsv zX@aDE@~koRt9$}isB(VHiz-_KO!AH5Cr<_EO&dq9&<77*17^6LIOMyUNh32|K4FL2 zW@+y+l+n-LV}276G6i`=)w~lrxH1eHiqKH%pOmRMvA@s;lL;5zib$e7A0{l&MGm)xb)n2QA` zqn2@8J!ioA|AC3Zr~z(%JD8dp8zM1Ik*ih+_`D5Z1<<%lm-4Vp4+53+@{&4 z?Mru2b>J&idf&1=3121ozrz^ReE*G z`pW#x#Lnh<$aZSks}arTR}O8N~G-QBM~UfyZa4RlLBcSr`#2?89pz4wm)DpRL_ z^A2mBcRf4>%%l6oJK1lwns>x6l zL5NjS*7QQ;rB8zz^joD#=bVTT>n9;h|Hi1b(d;nVWJ3IQ$o zCitCafTC9IVqfo(hzwPzP!s9Ce|{8e$(kSg-zn=z8;bD7*iE zeC&55LMfCM1}S1}lVw_@FbI{hcgs5VeIM#363U3iHf60eC?xAltHv^-qHJRsCdoE- z#?1GO`~A7o@A3HkRnDC2y3To>b6)#-zI01`Ad|$a;M{Q!seyS~;{7i+K4)D<}maX{! z1;WJ|%Y*~g4DPAkF{dr{5}iGpAD8dj`|a0#%ir7V=k~30`Psmnj$5w20NB?%7W#Yr zjN8Og9eI9+k{CpXo7Kf;zoHt~6-FrY|Mk~-QJHPG4;dgo517{Iy0>Sk&o?h1JAMR8 z_Ifw#8%*u)EIuoB@^#F%ou_0HxVL5czQy29%xR({34Oh019F3+PxCBidaMbTXkVW6 zUMgLp{n{vfy0I}0&!0sn%F}&PZ{qz9_Ni3V|_i9OSZ=GSCh**9?KtmAxlvr4B z!bnG0eg$Cw;s|e!Wo(>eHl0`7{)6hzzkAKNtHNu!!&RqdeU!Fm>JZB?|KQ2bGLAd6 zcI15Y%W~ta*x@OX%;T}eJJXf7)$drScj^Fh-|bpinaw}cIkdQ*i6lcb{5{u1e(&o) zXCvV;Apg_zHrzFVlNpx(kf89>2Ykx9N4d(oPi>nUnN#;{q=UyCLB_7OxBVLMdbTtF z)>!6gB^nNCnKRHnC@I-2NDjB@&SVG~Vw3B(h0hsAkhj{!@dJCz+u$Z*fl3^FF*o6t z>2<-KEZdZ;`R*s>W)N{ef3K2W-YNW^C0g6=z}Fq4WZsXyA-_V*~B}BkV*6b)y(wKTEh8ym&vOFzV6wvSrQS2_O24 z?p}o2d**1^_dCzK_42=)-3hw3>)Q|XP|CW<@8eYehYG)>zk9hxfU&Ob>X$dv1Z0Fh zR}2?%=g5qxoOKNxgP-fsBSuqf1VyorCXIbZB-s+!;kLiKe0V9gzqa1);YTb(o+cbh*n9J9cO z!4dD7m<4_%xkT8p8UYr~|7g_*kwz#)QGbr5YW^6GSq3InTA-e2Eec0BdzfK;{ht?EEfpp z#azfWO0@YUSZzb1ZIg^44TfD8Oo&(67cS^(T5Vv-pr~Xx9rbkU3IKh z&&p?hUf^e?axO!b$7lBCs}Q*xM_9)kO9gClSM2`V(rMG;e@x}lfc@(+F>^Ke88KT8 zS6h1-envL9$}TMfER0WJZ<~~VL*Ka)?7pF7*cErD6SW^E=*cOGe{N8|^Ca6?S++Bo z$C4UYp_Hb_kRr*}=R1F!JB91-w;s{pi@O<`S*Kgw^Hi0=Wk zL)&_8=|_V9l9Lfwp7!YLIr7wU{Bx|6Zm?_HSW~IpFGL=}?4`l{`o%$?T~}t7GJ1|m zXK!()*X{XZUK!pLZ0f`=LsQ}RclV97kxYisV29x{li(TFnN#r)fgHk$^ie>>0jtJ$ zQTpx!#RF9?N0wb7Hu$mRo$r|@PT9q^?S?~QzVVkuW4gaVUcOKu?!K_q4?JP}$L^C; zW3Lq&98KVm19x~jRK~3l%2gjcm0a60ucTGAu1Ruu?&Mj|)_)#N+OU;dwo1~k%mQ3> zZ%Ke!J0vR}f`WJ3w5I>Jy$dV<*b=6DN$Ql%)sxJxIqJgL|>EhILYX18BANnyX+HkD#YHOQV1r z+Lu#nhZN6ryPsOQWCyK^$20I+X=Njn=l8Z-I=FRt>L_*QQt-3j_O&PvQ!#4vfbW53 z{!U@X6!}@4Ooobq*jWvPnQ&a1Q&US?A%{XO&O=GNmSxSSVV#Kr%pm6gKXc|_7LQu8 zckg;td-uj~zxKq@tt>l`RA!f?UuayO=c{ zF}7r2bM~U*?1!Vckpgn!r#m=$Ais>%&C++@1@!)K!muKSdxcp@+STp}+-4n&5rQg)8_-Tt}|b@jh>DeU}vtHHM1nS5viY<&d=PVV-4 zX6*e2+hVI96g8d)ttx#Iz$y8lyiCSjI{QEtq)l|a%kbgn8X?^sQmuXrsRDQY3yDz9 z|7enCkg(NNl-s(;yh`hg*u1hxToPZ*TlkK#8RG?zdyw#^*#$W^CUbnc^@w3_Gk;?~ z+Mm$lK6TD)OpElL2Uy(^vGoBsxM}$cx>6u}-?xRa-yu$en}2+xNRo0mIN=5}Y}$r_ z4oWFafI^JJ`gWKvXq^&M*2o;yKNG9sU}xB+XJx%kaL@Neb6w#gQ?*RWw-KNBcaZ&p z=UC8A$iwlbFuZ8%z5kA5RmWCwDZw!yf8H}apubR+ z2B~;ZgKKk654bb0TP9<;Zc;zo&VBr>*m4J?R9`gaJEL*nWC@V5+3*7roJdaBx=ww^ z!#?w=?Hp@CYU=G=kGl?fD3-e&<67s#&10}WMMWI~|x z)~HZbM^OGA-#hlh*Xkk9;fix&KxFN8RBGnz{LAqk_}Y1(Iguw_>C7~liIEQhgzpYH z6tUUVF=kkX8!>=W>#Q2Y4d@0-$-!r01jCcL|C^JHUF=rooE%^Lu;Pr^ezNfUxXOjw z8#HS|$I^z5nHtxXL$_I(^fd)?)JrGBv_NJQU993PkZlLExR7H_Ay|1PVq1=PG7R5p ziSM*Mr&Qxh*&5_3`@_e(RO>CqVJaNQGBIayRy-(B_~9VKzd=jj<;ZRDObvb;j z4o**AF-T3ZV<58Esl|^8d#6sbFmO}Ixd3Dr>SN{o-(k6~T_3lc%`Ux+_bgy+uxN>I z-pGPv9d0S^9n={CeLpn70W}emF|Cfy^Au$B*}&DTah*>n-cO{Bg%cIK>-|8r(0t%w zTtVl^GjQ%xsi>4=4}%{CdvgDF9N777rP!2@sJ`Ejj(IsHKRaFT*H1R>Cb zH*dC${CYR4-}yI8#;|M5eF^8J@01&!^4t)_Gi4xhVru5E-e?Gf%o925~5}0LXEYN$&!1jrkXZn!k`?nhc zbV;S6d!~Hf4oJ-BkT>R$_K34;W3l$1V@^v6sNJuDpHUOO(rN(7UdZD95($yqVq~4! znu67}>v5kVeMWlp-Ez!l{d+@F=3gjaBYoh=-*(b+g^*K&mAlO=R~vdQABY8ACw&#x zb(A!M93?rQ-Vl9cc|(9`nD0)+KG3Mha!PhPQo-RFbnP<~^55*be4lS|!32(Zh%-!R zKOmLxajklelMzREo@FV9)!tox4ph;?;XaDl&bYO95FlF=XO;sCrCsZOfjjRfir7QW z?520W-#WY1u@mV06VW%L<0`(Uoa5Stb86f9o@H5!Ok&9zN+^x$-^@Ff?}mOBG~hYC zF7!!}f$&T56VV!6+voU46zR-X1+8mWai1a+$9+P7C(xBwLXJ1{yJ~VhkmKjhR>3S! zfo+X>w|omERivrqeDFt`p!Offtgm^ed?qU76IlRzs=2cPB&O~Hiovcc%SFGrXZ)={ z7W@2emKo%;{!WTiVQ2Ct3Zgow)(|+zI-*!=jUN!0 zFxIjBt3+%2ZlxTk1jj`OkN*rR_lm8DMlg0dDrqje^|{p48x~MH@&MC>Xr+z%rraco zG{Ts{{(DE8dI1A?PX5|Z;+3!dfgbFH=KzCAl3(%}-y;|6tqH8hkZK6Irf#DKy)-RKt{$6~Afw3s+4V81v2N@LxYMgE#3{Y3Ix6-Wl(pLS6_Ze69S8m4}_MK?-FiXe$ z3$SsRHO>4LIhjD#D>faHFw($$!@A#n1$ui!oUSoXv>o(`muF-XM?fl@L8m@h z4u~?f`8(fpw2yM|fyErvKO9pK_Fat!hyuYqtz#GScWw;=7us!AJKSS{0Z%s-;aNAC ziw5%%F<(H-H=hEw^`XXm)`Trtf6{-`-K6GWMCO3P>q(!GWXY`J({ce)T+=+$4%3#*HJIlvVQdg$l0KGQ~Xx{(h z1ckX<6J6X>10!5Vy>8Ril33Z5bh4=HxYq{}^Izz@@(iC3{GG=gZ_JCY^#PZBVW);c z`CT;sw?q8PJ&91jj)eAh^!bcE4x^ByKHHvnp89{e0AP1?eFBb`XS5d@>(f?=ahDyU z|L^NE6ZAi}i!A;ItN4d^&PqxdKrDjZW@f7xmvazx{Gfw8`P+!9=Cgz}gz~tTTvU;) zVb|I8?y)Q6b6Ibgi4A26LzK3@6q>E`el3n1PI8q&rrUuE{%1SeAsRo}JLXM>$?xQ^ z!q%-GfA{68j+cF68zKI{<+0)Pa>l1}A&cWEr*T-+I;+8@8>eGH=Ji<9&l-=MEPI14wWsY+WT znuYT}PEUBwJgaX19zaVt&2l-)sR+*q06A7J36*oE;}1Tn+;9C!?HDZs=@C_2z%iEF z-2sDZPH>{&m*-!Ac$SD3e?M3M{dvr`{MeIDl>#>VvbThUGuyV#PU*)IIZs>QsPI`P zpZ_xmpN&(T+jii!qL_#*OCRQ+18f7)S?9?FDZW+v+I5^x(DrBG;;Zsl5#;E;k`PB>KOesmTjO+-va2Ba1%oD7IGZ&$$t zWQ+rp#Ch9JkHTR_0l@^Qmn_#-@zo(R?3ZekW;h)X`=IFZug(a z0m?|6{F1|jq_O@mONuQC3x_X)k<8PK#O8t8avx|a9XC_BT6f({D%yEX(y2OMGkbK@cU|^{r*>x6ydGed`=#e;C9v_W&6a4~**~U}f1V zEo=qL5?$fUlH^#c54HJ|i}rx)XpDB^I9p3Tg2Qi@Q^7XpgVhD@|n%jesq0 z@7VhGB9u5wd8g|uyF>f~8HtqxN@H%fnXdDCxl*6u#r|O!{hhhstlYn@LsN5tmt$Mu zpRnCpXMrKKEq{nLog;kGj7f~N|zKK!4vIsu`mloR@=dJk2+`_5K82mB}f^?WF#b>Os5 z{%KpPEBC^;=o*TFn$sXHJmMd)0L45xBf~VAjL;M|CoutVV z#O>y72)?7jJj_;bGW_j(?f`QTIx`dE2j-$8mvxAri9)f1kiZRV2;{B%5HiKvUZV%+ zVMlqqRWDdi;QJk8bibIqlagryTtor-94ybt<<;&hGPjxHv9e^PwV6*SspDtWb^{4& z;g+TJwOhyY2+e}+=T!(l%baS(z*D%IV?@JP#rKGp#b2Iibp9Qru-Y1YbH8Z93DbYX zI*mG-=X7*oqaS!74odt5lE+8&Pg&2gy#P0I#MP5CKjN}MDX~vHz=&jT4~1!)6+lJx ziCR%mxko_d5VSGP9W%QqVZ;(R8IzEW0TEn1ecd0KYqIUPS6TKABhW z7lBK?T>0Iy)4u$>o+{_Sg?DU#CeV9<2e?Bx4&~JJ6Re;3*S7ZuZZAsO5TWL;2u2|3 ziK>Ija(k&p`YxE61?9xBHNo=iR*+Iy|J)V?BHvbU$QN~6H?J{S%GXQNUrZ>eLGsZ>aNhy>bQ#$2~Y~Tx_>= zhFA(N&z8jCIGLr&*x>I%kn$#Qzcym1CX!Uu+9b5%Jpy|z;7nJWtt9qsHu0?tCSCW3 z)d2heMx8RY(D)umzkj!f??av6cO{W*S&;Pxyw>PMd&`(5kS60A&?fxejV%adyv*hs zd-P!;t*tK1?zZ79mHYFxwK*lZ2bykaosBH^gPyD3N#s>|>B)OQ@JmuG+Ant5;=UWd zKW`{(HiE%aMbFcdAglFIJU!Na_jgLXKIVPRLI z&3jEcIG82ihU}5q%R?nmq$*3YC2KaB$U;WC20lkNC2Pf7^tJ;ekQE1|G*Z_3H04l= zdM1EeHREDhjjS&wIn$@~O~^$@t?CHaNPuRulcH=Zk0~YkaIrG6Umk+x`A6e&b$4Iv zIS$2DgORVqW0|iWf3EI6w^RBksL60rVJyJ=RaHB3FaxV|QmSp^Cu74R5QR^5bEYdB zE8qYMw+j@tmISg6Zd64e}+=UIDnx5@ZY)wV9=O|@^O=e`NZ2g75AVdAZkvr zz*sW?u?u+pFE#T>7ZAQQ>>|5my)hBt>$xvw0*eVAW_gmoUrqo3!&=x(&`^BvWTyQY z2nAtO|9GbI;Vn^0pKUfPN%_!@7mZ@D>h4+wi={f-Q%fQS#oVk7s=HJV^Z;`T03 zSAW97uA#R@=|b6tUNDRhpxgl%xGDPtEJm&MWS|SZ6iXt2%f>EHX-*x58jRggn0{w> z(Ur&58iJRaGO&!h*e@Ee)uA>jmnx>Cu??A$Z8&uiI{)mo(4mxCH*oWMND`3QIIMe^ zv;RJpp$L282wa*lg7)D+YFrE^5|?|kxo>$$f&9P zNZ_#NYbZM^@b@)knq!Az%QgfWT*8$Ax9s3@s8-#tIJe zySg{ps5fn}Iu-3_qqm20%>tOwzK_&)EGcv6`|iFuzoBHJa)w3IPsL~J*w*aCO6f=e zU$^X}b?#Z{khqb8!`#=e;0;`{Xr6`~`Imz!W-nD&ogM53I*@~3TB!HDl%{7AVBQ;% z3S*}Kww}*1ncPLZ)MwjY5>o>KzzDLrW|~=!W}-ZQ&+9*Dv7O^$Ox$E$@en$`Qh-@v zT>xKyMyUksermSw+{iz>C*hZE3XH`*sGr>^@z3D~QfbWq?F1q+6Q*if8C89(wrYDp z1}r~pei3{`Jch;1KnC~=Pefm*9~r`lm`wY88y{)<)GXI*jBPN5MnF*EU z08nLbl5ijb7RJ4DZG>B0(<{I)gp;s?AvWs{d$JA=15t>B!lmO2DB$lxFNp<^L13!; zIirPF>_@J&Os(+GcK4eybHNr-UFE`(_`nMsyqxI(p<)?^;fw8oP|kfh<=Na5LxDt# zto(!h0;tC^v>u>yJv*shAXIX8CMFf^Cs`q+M6zHvEXLu$iR7T*zwf=vEJ1H?c#-bk zPnNA~L+S~x$mV~(;(BX$#P$_T8x?>)wYE_$V;sl;S;G;^5?fiaXwd}#OIVVeXtGHe zWf;i}bD;wWJj9X;qPN3`**m|#X3K&@);?hhfDEb+6VI=jLm_en{gnn7_Gt_yzE?{ zLf4_VlaXYCC6*B}bjw&_X8CKkvx`3*wp!S4ngJlsOJb!JiWv9GUn;>cNmx=JAX^Cx z!>UTB>utV(2KfKrFfy8V1)%Uz<~N@P++h)Xr-Kt=Z4_2h{&K11f%0o+|CQ=!=Ki7P z#1vEQOKx@vH%FQ{LZk4DiS4herUJ=QpY9Ijqxo`cBk%lY1Ke^fM%WhL64=Hr$unFzhp z!_mXO*4&8_t2i&^_>BXaI3~^x2OIVtlcm{W;N{t}66(ix3g(uzg!L^(1=L9@9WSwI zaSp6|ZfmH`X5uBHa*m;#+EypeGldX4Rwfv>%xBFRN&u{ZqrAxKSv3aRuxsTBgV}}r zX#ram8!0?c19mGdrWwLgN}WHB0hj{O`}{2K4zy4S?W4nhDC(FRQ8}L4o4JZiA5d>* zNX`Ra4ghQJAoaF|9`@VbA*H>%aREb;F0XFt-6YIEZPXs{PFEnISt0nvdVoQ57}HL| zBUM#{|kc;MNfXn2&oSuxl9>a? z`5N|U*`qcPMhdu(%}bs(Cmf(Se#Vuis{?ps(_dQVs13G+$~Lq+fRUwKXYA=5j?ir5 zROUAAwobiop$D+0KwX2V>3ZoJVBHs8|cuf6)kF8r0k5S(a$Uo0(32O_b{?ML1QkC){ggn`&? zlTJl3)NPiK$a{x#38yRGhHY33x+wV|Od>-x1_@#Fm)L7>2^^V{li8{20R)hQIGHo> z>&8lhOU+9`GoBA9yn}oZ;|Y#u z;t)1cY?dN|Ljmv?94E5d8sT8HD!MuTdsq@}8X(Q=fAF+AdVeT@KRc@mR;A#bpGf^9 z;rEF^zd}QpY?K>pq`tQtj*tYvW{z8;Hf&w|TdN-mT&EA$=0?6&(xdJpdg2!=iPBg@ zI~j~nD>8Z>G zM5nKM)Xf&&72V*O!UG#AK>YmJY>@~Rst>Wa8{Hi1df$TiW|K5xvq~e>_YuP~=7*O` zHYq9>OX10TeoiQiKh#uVY@=zd*Tkubd)?*mC2Is>`wGue*^2ZC^1ToFW_uAcvWa`; z>}JcIX`ixcy>IFd1FqAvV;x*(ZnF+HU5E?_hGW)XtDHkYzwG7^?_$M$T6Pp!prNd7 zv*GOLhIRto*p>_6>=Cwwaz$7%gk~$+s0DWH7Mx(iJ*|LW_F?j~A3U$iF1pgO#O%Zy z9~$Wo0bo7TC`4jaxZd>&_YEg-ZFhzh_M91@^GU{998p zJn22FtLRDfAi&9)gD=_F@~^}(JTLz2pgO5yg!_DQ0H%=GM#U`64%1?BPpg}%SgRkw(e`PJTAl*^ z0*GdSvwB0Tv)P>WmW2_%I)y8h!@joJMyU)G3*8)?ZN`2C!xJDN0p_oXX+fq`tJe0MJp#j$gupngj8+>^`dHFA zU|MO#AoY}CtGyO2h*t*b(*LMo8@y7bn=rsu!Y_sb>#S_2Gt>tht)^xn1W}>(cZgDMb8;%+(A8`Y&kuF zy!KX?HrkZ~J4~;7C%?y6Mhoo^Il89_AdkSpECFYP#oS`8wNYto{d3XT zUs%vMFK3?A;R4mPJ6v!Kw8cw68Xop*E`md(uV~1iV*pNTENEtvva(7XrQ_ zs{VIJ>+-&ciI@E$=p(S&VQUo(9;t_GL|k3N0GVPqQ~&@{ueD`5I!r(ioRM#1_M=5Y zFL@uAP2iG4?+N_?{=Ts?%it;FuYPHXcsGb9_3Y`;913;?rDgyU87d~=wGY=X^5do8 zpL~1TG9yi(gk7PDrKf>Jjei|U;+q?$w#H`G9r@C08ilyInpQq{3|{D>z1X;Ysq#VQ z*h>o!kV`LgbK~fE5mC`rva3n`l-eU~Nr+2NX)GT^6Qao>#JPXFj*PMonP7*haRBKI zC5as_o2pD5eOGvL{_eH$+dX4CbK^OO_0*bg&ad%7ZpCupYyXy`-QI5{Yu8^hz9*f= zNg0dKu5P%Ywd3y#d0de-*o&>LiKFj%$G*R#E#)0IP0r+?s1TdcyXQ8>3rkN=$m(yr zeyAh5q6d4DAP>Wo(SFnxI!!KKs79^ z9fEs%Ccx&Hdfs2Q+F*?5n>x~}Is!*GUdzlCO&l_R7<5;D+Im_tNq@MEETp>_DaZkQc&YpnH5(&1sOCXE?ku9^0{#`&ErJ7YqRnK~o^ICB zxkdmNoKjgZs&|*KTM4k>bjdrX>YsFnqwqmpg599}L>&CNM3p3POu;aqs97A~`H46G z;hO@YY7~XHWW)Ba>WnxpoT@MDUgKt056CI6*2|PH+!K$~d)|G*i(PY!qAxbRy|)^8 z!`OA*{6SC8{BNG0%79E_7aGAYUe&)h`q0h})mYHo3krAONUkET)csYZz_0;|=^5whjv@wJ;_>u3MoyDwk(8Da0gz!yuT zKFjbph6&e`z2rQz{lBu$?1y(m(j8HHwf%9cIR&QU4b{3I0`3Im+IU=KejllPXo_DX zz1wTa=T+OimR#KpM+itvAWeI$XAY2$>bfOWce{eMy^3nw_bU3Yysp#uMR;|07`q5w z4se$7_8*tQMwWpEsP2~I&=h=anN?oR6a~aa;m!7>A<18@aSkZE#fj z`4D6tha_+rvomhpZddLQ#;qQsQN$DDlLEpVfS>2d^Zl0QraN5|>cn3uHV>?>s|>l> z?+5whC9yD~M8&-sZIrz?NA^@_;$&eIzI*NX(7x^G4!+qv%QJMTC>;^V9u-?FXOk<5 zSPG2#Aa;`vZ!}-%571^z47qO+-N7bB1E|Y53yyFu5yP(?}A!}=YbPz2q^P2 zn=dPGMe2Egrmt;O?ac|IVnR4m_ksxuhMFjhO_k*W=5Pt9e79sUA)C$xlOA?8JYN_3 z+?g~|{h-rg`v2tu#7Zj_HGHiu$fd@btv7FfYt9hzyD(V&E;dYJ3aKP$4wW9#@Sz6n zNnwL9e^3Lz`#`^vsjmTVDJ*rS!oofxJwB?2eM5RAAXTLPEwE)3{F zP)h;~>+8D^pf$ctBb9=}8rNT?;B-J;NjBrDz<%*=#P%>R#Q$1F3JnKzxq<3wP3m{B zf!glSTgNc__xL~uOk0p^`_EZjh7N>e8!it>yhQGXDNLx|8DsrC+BpR5Pu!!P?GN|D z-ia5@htIM5N@iXtd*@$ruVikX)^~sdB!Vgh;ssIQ* zf(_IVY`m{a^Ax~&W9L9p0*upmeQtno@&R&1-Dxq~cG34%?GGMV4N+`+lvZ#D`CkJ3 zCBtQQNUSbKW#m9Z@x`uG{T6O%>A> zHxKHS1^-)>Yu>On7eLAd5-O_(dZe)q_p;-xYDa$kEciKpj}3Bn z9aN3;ryO(l37k)AU&5NzH&)`wB4?ScM1Egkt@O;+{u+?$2X0s}H9s~2o~ z)LpOS^6mzyA7_Ze-C8F>$_yt+vN$Kk(u})oGE9gA8Lx(Qh?cWu*&oAbf#g%#{WUu; z!Q^s()tA*qb3XX>Mj;=2(yP(ROY`F!D5UNU*5Q9}e(MStX6na(!3F`k;1LbTC-3ic z*}K|7?A6(f!&RrMRyZrQ7tYkH|AT$D-E6J^d$C>WPVGR3f#ou|GO#T??!r{7yJLp^ z=5-(-`GqSukB(Dl^p_wH+3+X>xJtUF72(UC5@zZF1J4`08`KF?)SPN;y#}IVry!&b zussgXmmlJ1?1JJ@dIAzJX@#9GApX~0*dNk5Rak|4iAh`czQ)^D7@1no>B0pG$xjp2 zcK5}qW%_G_aH*ly;L9i5I|IO4=Db~PvXRgLNHa@Vi@x_40*E?|02Pe*y1|w=gFaK4 zv+h~C8Gv(FRtGQ}l$;P%+EbH&()Zn0TKvScu%l|e@ou~oMrz#O=#8aI9P_2uS_`o0 zeVc%cYY28xId=Io8Fvam?PoqWjWpEKmFb{yv#X!YjRiFW#-$n-uk|VPit2>q0a#d; z*71*1h4HeOl7zqSTq9A7OPve7g!v4}^|@aFSL5~*F7GoGw1j516~-UMw1OqL3YZl- z;KOG)*-rSYgH-i{09M$@d_Bn8=Wc|Rvu~S4=r((0*{Ub+k(*Gj%j#JDl^D<#Hp7#$ zoLqbm@{ZOXJ^oDb`|h{P*wy&b_efP8oY|(v7U1i6KCi=lnq7OSHw z(@}zgp0oFAbd}~Ub?KS{%+0?YFuzEOE)r`SP<@Bd6!Ac{7TBtiAAqfztjsxcP_Iz3 zN|}prE>f$YbFm0$idJofG1@RpNxVF!#P-6r!Aqu1j@13*xe3wE+@ z@!~ey%MOMsNibectN?+f3v?>=zG5JC2UcxUYOM`=kB<%Qhbc_qy@7)!3na<#KiVP8 zH)F?TE2JYFdLf06QxhTtDLb@7$L`?mbK?m&o<6ZH16THB3?&LxfF~Xk@Ktumk?aHt znoKRi360N#!lIZ{KXYc3LNP!>TVP5c#25T;t9r+nsa5NF?K4t+8)IPNnP9f~Y-~foc_w1; z%on_SAfA(ekm)OS$==|xV%IZk1atRhq9X^t=I4%!pI<+ZU$h<)O5mdLP5_sfRlUJQ zRO1QQ>Rk@R{hD-(rnl<(){{GjqKI$#7#E}Q>2$BMonNhidgHTq)-p_SmTqAbgufFB z6{1QGpA!NuW9aM)i`%YEDj3Cgw*qT+tULjQ#taqSSN@evDgr(i@RmW2hR5k6Sf@7X zAwS=Ec<42S_n;P;|Nc;M-{u%xOMR?(y2WKX#je302KSg!<|~w(xj?M^4{$d{ zd*3)X=3)7>PZXlF4&8nVP2emoP7GR~=O^?4qIcyH1{#Suff%g4XsFP&to2V zgiwPE(QH(JXbIfd0m*J9CMzPpk_0c2ZZy{KNm1s~t>{MXuz~iF=RgI^_QLpsm=LbF z7lsi$%)d+qWwJ+X4c+vz^tN;ay_e!1dY1w!4<9$fvD;Z1gKdAIXV=e&Hc2F&&_6e=`7dpwsR*OxX^WD=?%x#umj_ zZ5BXMSK%p-@wbao0iP3dnoYY?-H8w{LBk=-h3c>O4hGooO%C~t8y0nAs zSQxK>iTm-w3tFUTTVs{;MGR)L6Xd2tDv3Jg?+B;GmL2YodJJVXG@K~c=9B{W1PDkq z{s$e-?Noa6^KT$8(C`dnX_>RfY`h^@k5<%-2t2b zocs2!;mAC@>h!^sx&7Cnnu$&W10kikq|aPrY6+NH(`mJPf!d&8WGg#mz`BV)N9qQ< zKKc|d0CiAC5q&t(>O>l-BbaKt%V-k#;d9p)geY``z*Xc zG89*O+Fc-2dzJ=XKU04MM3~V$OwX8(;bs5xCQx+5UjRKFxGZ=EIT$41sfY+*9a9Hq z8y%C%(i^fX1I1GAbb?^eZEVJmT`G25I*?cUUkyu*u7NAN`maCpn{QXoY|SP+uiLSc z?U!yQHr37_0!I3|gnZUytYj?T_$w6}c`9uF;Lu5OBW*&xE$e^)OM4D`SMBKFTSvmV zRoF@z{gVLfiQY}-{xRi5CoN4dTQr1GhW#SE`WDc$ zJf=qFTk*Pt5*qo%U9jbrDh5@?U$o3ccsrz*wCd~P|Mk+Ng_3u39yVOzj8q8W8noJm z?H0YSK2-fKGd@+OiM!v}fz#f>D69mKXkX~QxwDIh6O|StCdh5nnO8@+FBn|~VXhRd zq&Ee8cS*`zK1YifFHvW(Bya{K!4B*jEt$RFM(wkc1iqkaLn`lLog*eniP^>qtoPNA z+Ndu0MH7%Kvf}{8p%uw2W6F3A|yt1;|M`_U_bhjR;@HOi?`y zLm2M8pok%4fp9EDHB1O#wwKpy6i%^>MP2vg%J46iB*N|j6^HsjR^8Y}F6`IJP}_P~Fx&24aj zU>RN`S3+PxrOxvMXmg08WqPpIc)-I|V278X6Yr=V4aC8Hwp*AWry z)uWiAYX*1k${UEtFcP2=d@FHR-w3<>{pmRWp#ujnJI(z*8p%NOWe&=7GGEoy$4^_1 zlB8$WUxa+cPnR{>U8<@3Ie&HX>iU-_0l@>+GXay`^&L#T_2!N2A*928=xT>Qkov~G>f)MQ*K$z(~rJO%{64c z$fM@u0dPr&2lRu@LEp=CS2w~%lxPTAdPUc1BR90V>=(4M^WEXF5aoT{v!=!6UzhPk zgop`wy#h|i&=S^g8zYquea@$t`vRqrDY#*8IH*l3FYQ}4qUR}yw>F(K`fKuj`f#{p zkaW_b&-_wN)hX+KHAFfc+cMd+0u!<%e@5TBph#O$ROmU=Fe!l^H&0VGp-+XU1u%T4 zNa*Nf#Jtv6U8>Kns&OfVMFc&wY|b^W&{n!c4&IUaHIMNg#lU_}NAyjPWID1VD-AwwQt#jjv=69A-iK);r5I*ubwX$ z%IBZ~xgUmkT^QqPImD1exW6{Z;b-0S=z@&d1nK=6YnpP;e|e^Knlxiff4=BCX&8D6 zBXY(13Crv%KGn+NG{fxaqBUwU%2?rG(RXV*qXSR9`kWw;SL&@J>5iWbjebmr&Munc z-_qqmf+xe5lG7)>?aNc8yL-#3ZBXS+K544lbjQd>u9;y*v2@NYtZ4})om%j-clO9s zQGelhL48?Yuu?+F0##FH)vo6gCe?xyEdcp#ilg!_z=V zE4kGHFf+6+sX5SYS!uIhX&NIh{gj8*gkKu&neJ-qza3>(f1rMn2v;NM;*0F*DuXF1 z+&o;~B}1YB@(OJB%7m`2fL=Hwx}ROoMnfJ|L3j16p`OYZbeGit23-OcdBU(Pt-iEh zbt?00PY~-U>6XmuYt+hfT;ChkTQslMXAB{odJ_}LQfGV%c{xkid_~z>1U;gBxH&pn zfHldcf4SW1C*ZUYL@Xs)uQ;%mIPxy_t>v_Qr(~q>`O_9lmz<9=%Gv8U z-JJ(S!pd`p&Nr;h(H4OHp(^Ve^|k5g|DI{K>xsJ9a<{8=Nge#JZHT>u92nK30kX0y zggpN_noA2`;j-nl!J2i;KIE-M@5NQCNz`=DGQM!T*q)O9=YdMo*8C9SF}vM8gdmzl z{IzNVzQ;o8MpO~Ak>TC3VpF%F8&%HKZ8B$R_`I#nz#KJ6t4$=7hSg_B`|dA}eo3b| zyiMImk&(7XX#0b;T%^j$t#*M?qYsj9eeL)LrZ!2UWKxp=IhgNdq^--(c42hza)@Ij zaa-`@U@v9{G!)3OKFhEM01?4fJP6hT@R_~3t9)sZ)1XcIJpDCj%inCn$*x-V%sQdv zNqj+e%U~T{7pSf>t3K=xoS!1$z_BWjL%>MV_3_f{qt$X~Q#1dsF8glum6!-l)On*% zwDR(ip{kl4U{T_7t&O&6C-Wk>Adu;-=^R2_{hH>o=SD>Bz^fwsBUg)f zzP29g^Lq=cFQSykrk|vuOwy!~X>Vnk4NW~vnm6=@>!O^~LS$E!F%8YKGwY|)z!^g9 znEp97ZLQPFx=UT`#jxIhAFj20O7a1GMc>T-lmmvEEQ8CX_Sn*!YA}&uX+FQ|rmwJn zuwqHCr^v8IWM?AeNLF9+bh<|N=X%=mhCB%{hq|&!z@7!x<`rli z2su)D{f#_EuZ%-q(7<6`Qjl-w*L}xxO(`&vD|FS%FgmK`)<4RBYm-=c)b+Zuh!Tg( z4RLu4AW4U12pb|1^qCUm^+;F2;U9)dT}gIRnP762fa8{Ce!^&1%MlPH+SdxODZ|3) zx*lfHC#Ohp#y?27{R`CRc~p1=eSlAQRZ{7ZT*%}MN&2yF*kidca$e-Iu|v7tn9=|B zjNR;cKV1liZkAo7+E0%<`&xi^D0;5K-7gAZC8()?m@>sUXH435RA;a;SP&<4ylyZlaN=JZw8zaP!RtX z?VCnP7bl$hC_`f1_phnxn5mo2%oP}cNBEa5Q2{UP0rOi%nK9j_NDg1vqbBD~kiLS+ zp|3>H1?tMyd2~quOH_H;ip58U%td3sY@g_^#(~o;%KqWH6?;07ostUsz~Mn$j-b=_ zdF7SJO^$}htX9adJ^-3@6!z<`2=ooy90oM4#6*UIBbBeYd_ro0Dh@aRORJZ?YR_b( z&CzD|m(7@8WgPm020Bh`Hn+)0Uybk|6$z(H1L2=mHp#qK&>o}$8JcErW*gF_~$Vv1+Yi$A0+d zPyqRR{w2w`hjKK~h<>_6?SXF+>3o`*DSd|EXvUn9K`V`!;=2tS&YMMFm?Hf@x}G|& zsrCI05JXDxiXiEAfKv%U1f*;n3=mK{l@O4Yj=@Dmt|GckX;3MV6dWBx6dY1YNy(6y zFuHT+_m1#>|M{Jdd^XR{TTegF`<~|+h?Ox~&siECK$R-ZcHJ}g`SoRvL1k6RY3tXb zrQoEb1k@aznexWUny;fQQt9lG(ViqweO`xF33P5&d9IR&jbCWeMo14%c#g-vVC0TH zb|Wt=N%@{lsWvmLFUQg(9(9(=P@*{}j@`&zd;Hs>2p4z(>#ALv?+Of2U{rjeBg5ku z$-w+B8n-cvfUJ{(eBLGki+8xCGpR3ArIhm4BSOUwI~*mt+JE>rsUKm9AC6x@81~^H zFD&$%L8UZ$SQ8sqnKZo5-=k16Bnr3j4I!LpA8xvg-H1h40)%z})5nXBVKczwhxH}# z8+m#UZzyMp3yZE6AS`j*COtXT;){sreo(52)l%&w)3O37T730{3hB_&@P!7!A8NDz zsI0y~Ro!aE<@uNw551lHN2Sytz$0^MSXjIC*RWWX=flE!WCudx2OUFPqcF>S)ffP}k-hp6cc5ulJSx3{3El{QWwmL3Cl* zpkeiCC7%Dp=4-a4;bfh;4E^Q+^a3Kf9rtx{*=EZokkxDctdb>OElL7*Td8HhTqtO{ zJUp#6XW0%#t5K(WT(wFigRbg$JWyGUK&ci6Z)PWLJjGMLE2)q~mxlEwNd$oB5iya7Grf=0a@w=KJHW*$0I>1MZSpqm3pYn_OJ zL=W?|2!N`9xn;y^0)ii4bQ(3MK0fd=d=cu;Q+j76&j`wtO1&RQ0_NFg{6We7Sj!tI zMctA_y4F}XR*yV6MH+|$KLTT6*~ff2N>DDhM0`MPq?y_>PD(^zN~vYZ?(HSNk^-yo zC1?!tM-0T~3v{R6|EV)HNj&TrN+5H50El^|K5c95dfNe?c5s%Ruw*^1{^W4*eT2 zC!gN;V&-p^RU8oXsVQ}bmWN&6s+9TzOvHmb_qXok>6Ge^7W&V*Pm-!fw?L7HSZxK= zq637A;Wi+YNa1OL=}Q3Zy`WvmR=eti;aVU9F~!s}VXrNyw$M%I&6+lU58&{r3(%pD zamGevSBq1UzTq%HM+$ql`g;V7mYg286+wo_IC9_i`!?>OLh z7-2%g_sG>9QeA75MQWux9|GozsZ~1sN#ZxE74+PSdnNvD>(4FGPLM&eK}vA}@f$_| zbJ53)fiM1gI&Z`Wi{1@F-H4O~PDm<^X!zWlrxEoy=^j@3oD!3j$LRFhEDj@PX7T^bgdMhh z`Jy^zwAnbk#x6m%WDFZ5l_3msQzK;&ro_873X*Ijf>tnQ%h7uwU_W^Iejn&BT%2B5 z+8iSDg_})?iyCrIV^T8y{l_+1cVYw zNIVvyh~{IG?klRV=aky&`F}^q(p;^uH*-RYeyYZE|F+a(rDbrAT#|Gf_Jf&r)n2fAyy!WeYqNV6z;!(m!G*mm-kr60+?Mw||6b`#Y6OmVX9aF4 zyWeK!9O19h@UL{(Hi}^j>6VV_ zq58$?^%rYCkO4Lv$p|x1K^N#d6;GW6>o(Z#z7NK{Gfu^Qu@TQC>y_#U8}g3MqNRpe z9B`wiu~x{eA^4#jj$4cYtl_2P=Kg%^6^sISVU{*ojpN?HJR6RzIcMcE zI*U`SP>Z%vwcSs=l{12`u`E|qf!z(x=j2W7ZuyXVfzz{DBxJDX)3cpHvg~)pAaa~m z6#VE~vr#A)&;8T5VN5Boh>YQ9aLY3YaH*^cJ{r`@0)zSbc_ClZtR+%~_eooJaiz#Q z{aZNgkcYwBV6Xz>ihLVSiW0TgC>arZJayGC*P&ry}>UU|J z4D3~hf6m#xR+UwDiXR~u%+0iEWMTh%U2QHN{xsqJ`3W)tcjZXlIf;k>KuC($Jn%Am z$qJ&w80EJ(L_NI){W7fG{)C0_Tj~9yn6dze9?157uJO(^V4KVqGv-%zvCQk}I+cDu z=spD4aLMr~^qPm3oI{Nm!5_6&Le@axi?iC;engbsL)b*uxoaLq#VlcYQGza89fxH7 zVTh*F>?7<>w)xJlp)}b6(<66HB|77DSU16Q#fJPR&gOKavBP4t_)ZmJxoHDg1W)Zr z&MN56^(ZGVuK{&0z$f4$ipp+%!eC@O-n9E3FR|HaOrD+01Uk(paIQvC*AMG4Kslp- zZ*ak2KA)u*284>e>a4M02pnD-ASK_lxOa>Nem8m5KO^^K8A2TORE#wEV~2l3H2)yA z_pY95p)s0uBs-mHvlx4~y+@$^>KYs-v7*Ml-jdGbX{Y~Dwf_|i7SfxS!+6yzQCf?2 z61)+zmpJvRh-L9ru1=kOCttsn8W=%f2N+*%cP39f6u&UIUU+nar@um{d##k;KByV0ELb32Si1mgL-E0+1(W%9x+fO$ zZ4U@@+rvBv@uWJ`#1=Wfj`gl@>cG2U*w%_ovRd*wOi-BmW*#6OV7?ZzUgqCF$e~TE zPqlm1&smwz<#&c5dQsk3WsNz7O_7i=ggRlnPhViVZeM1Ju?sb^JV_3r5YL)rCc#^q zFkRdw)e+Q~5!if;j^m0)y5@xm?48nuUQO?BbRDCjmh?W-0FGhGXf-A)ags}rIsaZa z?C_7H+nxHV{^>k27BAftxCV4UOSX9TTSAiR1e8jIN~Y|OiY9FJZZ_IuJJmQeYqcqZ zVqKU9q#&Fw%rGO8!NO3XyL?*9;|%I)-N@0Ox z$2ES=?)B8|xM2m7E*6LKu-d!R|K~rzj{rjV`&3N#Kadl0Fs2FL3T2@zG6^@Uixarx z_%fL6M;$pBA#({pr(at;4?B~8bibmx?I$8^?{s@Kv=$f))%2uQE|s{HBT`TvM%77T zu}5}BnX%aglyW#q_@is+3u_S!o;%R^og6#lntFfJbO!3cTfH@LhyhhG<91`)Iof?J6+9o0KZXJ(j!^cUpslxl+9QTLpO1Rx|%)W@M zsL8$^>?%Zt#<({Ko;LJ2w^5yBBTK5plcCDB4U-_}a?fJ}Ag*^qnJsOvQ9uMZ&VT~yn5E$CJB&`zA;&iy(Q=a_o**~N>hrV08I7I(PZU3}4XZV)DfgyRTWpP^?h0LgQA)M02~H0f@5g zGtkV_ml8j|zk5J41*PP&78hPapYi#PW)1dog>;P!vk(II%EcgMb|~+K=nWy!ZcSkt zCg?iXIMs)l`exAo&NPfP@n?(IbIodm@cugw7!16?&&;|PD<#32+lPP-aL z_&$hGJR&a6DZkadTi32#(PxaiFhiT@7ZneJ*`5`RDTuKFY6r?oND?cY#THxMp9IhaR+ML>H=fy!=p6Gkut&q#8BB!6I4OGjTC9fWF2{li4!Z3&d#V1hY!-i zCGhSLao^QlYWC?zuaz4Vm0vF+LkbyTkiF9)Iw!%e!f5%}Zy>n(J`*}Gn(GL5#&s@s zmE^{D>iq*n0pqaNIqNLD6*iccXbnXB?Mqv009vMQ`wNULN!9x(K98)ye+Keo;2$Up zd?hS^b*z=8$xfRJC|6%!2K~Do?lLVL3x^40uZ&d6eGiKRni=n&VES2JqA2XSCXH0r>`A{NWr(#E^5SJ zBuH1WIf!_|Sw}*BEgUw4Z!x)w3}Y%Q6YQYaQ@cP5pPQ!QO_@wzol)0-!s#(`rPdi~*`%drL#r_mjL9z@Jx!o-U(KZ{85!xDv z7`baMxSiC}khbx@&K72ZW_@`IxGVXwGE7z{gMMQwJ58`1YissFRa+L%OdvIVkX$4w zO2j0nwkEGtu9l@cG4{X20kmt*m7LlG9HzIxs=_Al?nuRoQ@apzNjySJ&Xa2%bNk`} zkRvC$Q60xU<4REVtLEhHIE&2;YWEhcQC^z zME&qG`>m>TYfQEw)aScPQ^gIbOjmmnkD8J}oX%3Gz_^$S%&=^P@w+_B?5M*|5~+c? z9(*-HgBU<8;$X@=`WM$_!xqiiXw#$jW-v-55SGDK=n5CZUBtt-=Uy`VXX+`X`1~&# zYrs3n2|xii?p;e>8WV78FF>nnv{l(C`@bvbEFpN+D-wV`NFFs;(rJ;Ch$li+FXygK z*EaT#5N_D!?yl7*$iDq%b&_s@xT%=T z0KNFz676B+q(-^`xK5{SDG`yqF13jP9&1tpZh4&%+pW@)Li zJNKjIE|!#9G5tkkd(PzaT{TqlUM%Q$)dRJ%3dOer9|cnIX6N1+F6i)f7>!1iuit8~YvAp($$jAE!Iaoh92+!P6M z=!X{WMy^k9xW=_3L?shBOES(=+@ywxLsccDiU07Ie(}q8^!AK;e7q~SQAzKlVK(~1cPdq0oQ54 zj6Ml&u)gRnw0W;Y>itFg@8OUv@@>u9o(z4T6I5jyaU38t8$^ zycZ?~FQOhzqkv~;JmNSzeN)PooLYoMK}dliKU#GddX;;+S0v;!KGfY4n9Cmsw@ov& z>udo7(l5j2?N1oFhvOoxRwOu@JO7T4tJyWy`MeIt*HBSEprc?A4}lRCK)l3v`RZ#r z>-MGud^B-2>H22~9|GN48+3E7R1^vfvS{jz)0B}%iJ>^_NVB-klA$@zZM<4M+Qo0L zHSdzEkKx^#e^>F+b$UOQVdT4n3ot6u$IVPzcp@fi{SbK94OSB1)C^wq7E59ScIetXcTACMtAG!SM(p%Gua9XnJ7s;)xQWmMqZ$e;9EbB zzv@hy@lC4=Hd`*fj-fMVW9Q;6Hfk|tl*Q>=2Y%3_9GD5cz{d@u>E@t7&zp#F!c#%J zt**&3yLdLsLSc$OTesd46>Y74$z8(xkOpAOGiRxxCSv7&U1CG+FkQ64w4JD}JnhLj zPG5i*oqB(L*>Mu#7XxI!HLzQqd5JDT{VDhwhT6d$Vd1(P${-SA5#}1dZ%GEV-jW~z zgAB2Z>(eaIO%{Ggi`KhHd%Rf5h8&DsEvxP>bKM%Md3?Og-K;Cp(<{jD2K80v5U_K! z*Jhx6A%tH_RkbGTrf}D}UHyFckFH7V5j+fxzfC8kHMEYh(3&&pcM&z#;e!F-4Jj+m zsNuLP_S4Nvva+*?`FM}Js%S-WnF>m6FIgAczW_pm?IxMj?$WZTrK%xB8>+i&wq!tR z3tU9cUGKd_564|_P2>EnqX1lV0XSS88w?|sr?JCJqGfok6h+P6KjUuZP2-~Zj4i9= z$ZeE)E&xK|y;D2Xq;K1d*~qGm^e zlS}`g=-&&i7~WUB9U$tUaVnkZcn^p&B20k=Xb4QNoX&Aji|f{zACR#*6AcXITQG%m zYIxmUX6JkXvW{fV18z*EbJP0UQ&FDJhNVfmg3N9SHs>T6cf?;(!`2!BTx1AD=&pv* zEmhJ*jTsCQaEB;RAkS@NMP~-+J~%sz5sLMCV@7rP-=K+Ecxl;F6%^~bkD|(6tD;<= zXzH4`63GQy2_$`#{zLc#WkEUw=dPx_-9LE4YG)uxeYW%LjF2YM8j!LTCX0Ze>(mb> zIn&11F!fi!QzhE6NXD@`)8pH_qmqx`X3>#mb<;@L)5{;_voIIpv6{)WYnLI zzaHNdnXtMBp^&tOV|kz*&Mhw z=a03_?3Eus=jWYYr4q5r*!q7k@Uk1PbSxLqea%A+xOC?~*{!{XIqyBswpmPs0@tiQ zNej^1xQ1K*#-!&O*CQ`Yasqi6o61i2h&S`n*!RZdIrZx1acE9V~0D+`WwfN!m<_#nv0bwc7WsLvb{5_5QOA_ z*IlNf&BrvOU<)I91U3C`jPth3AJxLT=rOYhM1Bq48UYsk;?Hulw8ME!q^lnszKVp? z9^lVIbSrkbjSE(iJZ!P~^J+u?e#7r9$LNEI9pTL2R~hkIN7aqx)hlUx+$hd$DUQo> z8dL}R6xa&qLvd?8`iyY)ZObF1yncH)7+Fg!hzMe$rW}{pCaJ6VSG67*M94y826_RY z-h`k6x+SccBodd9AnF6W6gJ*1Lm66Z z-(iaqelsJ$!{AED&}2oPYCqEDXj!bpQ{>DhlbvyYvzV^pfRfHylw+Ia+XJ2}cH-#o ztaAbo8^XW#A6o0XiUqMnf{>_R0FFt&h*74!-~@fs;9^cYjDF{uShnWeGFM zb{az{=1!|z16w0oSD(j@)khSR8w*>hbq0=ZD$}Msz)=Num;j{tU4(H?o-v3F2xr`< znf?F*TBWhQz7{Bgklu9u?1&7M_V`kXs;V|{DlD@&V7||Si5C3n^7_l&KRwT&w0GlB zZjX1PLq3hET%%FVckT86VSbE+Lpi|S-30c=DL{XBXXS+|2IA(V~|xy6eb*D+$Y$3c)rimP)Z9#zCbko_^04r2M4 z>#8V^iTzt-MEpwHnR^MNn5dC-vIm7oz$>xjauvld&R$)c!LWhTpmOZAD7__mJX^W? zER&U4@w}oS&6T>?kI#p+vEeA7o^M}wRkf@vdsnq*>4fGh8 zmh~<&nG&Wrl1%gROdI1FA&DEU+givsxUDQ*h_30TlEEHQL9&e=)g5RQIII`>8X76H zOU_y6Gr%UGu_Um&xix9uh+Q!)^`0~a3odUPn4!kv_t!XLBSB~>AZ&88!VgB2zSjDY z=A2x6o<5tIjh-XHb~Al%T`1#mfk@H?W14+hZb$UoC>b*zY}dv$6OWRS1unfdkk(Yi zFp{Fv+U(do>(+q8-Y;99K-HqO*4Q>p&qEcU#FPFf}$_^zKrj(WruT8TYo*CCmjOmIh8?I(f)-x-*iVvREqC67XEd~50u-!|%0M3i41Ep!A^?)w9z?4SaX1D$Iii$G4$a#Qapc%gs3>#5FtRZ-p8)*8m* zWhu_N9kS{Z*cBR@cR(mqO`COEiqdoe1m&E7^4`|{q3$`QTc$2i>pL)?Vsf08=RZQ_ zC~qLaE%PWap>&`^fmev|B?B zW+iHSjVQgKmdt$wnBEEQcj)l1a{#8qT2KOakD7+ZGaGQ=)k=xPkF13Zs6#A^fy7%u z(A|E^EOY}W$2QbM_=#Ji0VGGD8?Mj_Q9OE*eXc-v;gx9pI&+TLu5s@y)q#)DwgC$* z8Q0`lEU5jUV^984w1>78-sYTdaNICLw4(Z)(Rx%%`$ZL&)}?RE`#$s}<1aAO4;28% z5?o~GTU(z%#)#nBe8~Kr=mx*d(uKp*Qt4(t=$4n5A2=rpX#lYv@D=Re^L!tWaHF3R zgAp}{P+{v=y>iq{okkPpS?!%9H{EK~QDOv6F_Ja#xd$1XiNrIgx{UB`W`P+Jcg89? zDwZ)l>htr;>bw^?BMY_`Jv6>xR77Vm)h_Z>&#bX&ntZayEPaY@<-oUqbaQYElp{T> z4^|f_2RpG79sUUb^T9c_2$rx-K^^SDOWQq@9e2f)yn6X@jAYOkOlGG?za*!lL%unR zbq#DL0}cHVItly}&#icGNbg;|jIx`e=-YubGx3sV9yG9y zKK;slwv8Q_o973mxyZJG2-jmlARZ^$swTiBo!h~@C!76UrArk^i7N~qcPWoqES6jq>XQ?(eiYX5abqKe)EY$)y95{UpU%rStr z9)OUa2{4oL+RKt{3RSD=lG}1XHn(?hsB~?!dz*mGzg>jP*Di#qqc~Z-0CfSlxM-|k zl!9iU$eQ4%xQVXiB!z8n&dqCAITUxNR!f6j_P**k8x>L|B2UaO3IR+-xRDMZ;@4HK zk|PP2-luv?irLN20Xu~#S&NMbTUSP z$`)s{;ImsxnPK1M!d@G_f7Uz+JWe^lhAns@10%n{AB9aD2)iPT0n5BHZ&hPoP3}($ zqED_*yZ_ZyMZq$)^%Vq=94SD6Ig`n^8i+Nz*dY+b4DJ`wX{h3&E~kejD;=8Kvc^IV z+iwjCgai=6kEczIFlR-H)z3WCD?j7eCJk}f;-$&M1U%Tq20JhDfQ}b~3J*-s+y0!W z7!0Ar>Zm2SofTaeXqHFg1Uk;;<|S+Lp;zdlOE;+hjI9EQ;8=y?cy-866;Qv1JQg2aBv>;7qQ#fnKw@vPMC)>H-k* z`~)HJ`tzN21#J&$5C_@3z6}yG!!9YGl->&!vyF7=PvMs}uwd&0ezz0kvIm|iI5Jm| ztXcZIN{Mdo!=iIQfh%MePqVnO2A_fNGaEJVI!if9sFMN^!&@}?Ko(3a1rbi)-2Su; zZdi%JE<^qUPEH2%eiUY2uxIWC9@&6I+Wn1bj`84}9Q+I@oRW{VDXntlT}e)w-wM)5 znkwaeYj#GARD42#^K@9561Ss4;PlU17k$eCP+&}KB&eRUk-%;tuO%aQiatMBNcnE~ z$XB(Nt*2LT)&$5Ool?f1TV4#-5L;nVY>EtncjB_s`s7?ot0;F{EobPWqePOzab6&4 zo_C~)kzSL)+#RKoR$kDl-0(>&)@ZVe3P9NGFTZ(rJW}Bc#u%l^a*OY_{;$&9blt?KE z;2D7JhH15Iuj@`~wj%W90A@DckpXV@XzUdCl!&}W>8l_`(TV|vjY)>(!Ov5V7uU1K zr2H+j2hvH-5qLM&DV1#Ur+4BCX1!sGf=*K0JGf~+3#Q+rF zPTxLpyJFcL0If@pVUyoWNq{-u%u=?m$RxWZvW*3zj91Ygaw(7`p&Lq{q$ae)(6=rr zn%<7i;@vqN4`Iqjlz(Oo#H09neCeC5?=Nj_gAvVlBRtBr!wdZrJo=J%2I!$+iw42T zPJKxaSD!McS{RR0Bz2wA7EUvr!K52dz)3HlhRvcqCaw9Iq_tTmg+cICc+T}T)Gtf$ zOdlOr)!9|LJJtlT|FonJwmcst+?Wgw14(7jeVmU_9-`Dz*fq8Kt2v-AJU7j?2I|HW zF>ISr8>aO2Sjd>?#LBh^XE3cqAbjhA!0tPtC`*LMshM5c;!PN_yWRlXF$mNj2|sD zYHK97wjGsBH1A3?Gg4(=FE+V`30?D8g9C{G$PB1s>R1>^%I~qIH_2z6D8@YBxlHd; z%uP62N_XS^qIw|AbYAK;=P7GrIPGLf2G~iuFF_C*Ubr42DY}5s`%3Q? zTrP)p#7qfw6ueP&64=*3SSAc)5pE`%YL%W3Iz8gz1-4#kwXM+ck&oV>Nl5uSO*Mh{ z95AD69tp#5!5%I>&RPiq$lAcub4^VsK<0$>5gSd=GocS4N-E?ljIeC z2zBZG1GxP)J!+W=_#nHzt0g1hHrUlSNWpIwJ^rSoeguqG5@sTT5gXa~a&M;Z-gRJV zfSna(ZNBCby0>VJ9RcocitM`9nx}L>*tU+Y*>)plzVC!CLrm>u_Wn%vVJW$=f{`O# zU2BE%E%@3ufdf(Swed;`U4)TQW#Y=JPDgEj{JPLD*`ewce2W?zNr~#7VIK1Sr6aYK0XLQ`F$&ZT%VG@$=a= z&;$S=!Yq}p{$WJtGdS)!*TYYX>mjv(WkEqxgP(p-`5{f?ve%4><)nKD& z@!kE0wXRMfa=?8_I;m?&x|t7$u7gW+4kw_czuhL**~GQ3GJn?Vo3Ag7qF(EJ6(D-E z<3&|6Vd+F>>bVS%wdzHx`MO{8dA>`ZF3v{Cq~AG2(|LLNW}Sljh$6k>6nM`T>wWd_ zQS-ArV}{9wo+`DU%$n};$$}Jv##TuN$3n#NuYuZrlD+>GVjFuxzIbJ;AxLoG(sn89 zceO5mt?d*1>8q!Bld~fuJO+5(50$>3s|@?pL7^wn0o8Ck{Ua0;2|YoJzaUl<@J?B; zzibGf)l&og5cX{UJKOU>pzQbkSJTBi(#}jG*Adn#^6zri$=aK@|1o%t*{pJZ^BeO) zIo(k}`ur&wkUj^yQ74r*v@J)a2wugKWBV`pxEJInE< zzNETJq~gS|@G%~Y4#>y@s%sO2-y9`gUQIfE%YDVoZv*!2+N+Ga#aI=#?Ln2^#XZg( zwey$+#Zwlf7`5KKzAcyBCbAD=xg&S4@p293=E6YR{m*lL>2h7TK_yDU&giJ|zy5<` znVx6RY|!64E^SX*vOW()80}ZRc4|QgWK>X(_()>~HAI5JAN&m;@vm%|1Ex8gX2rn;^X2dxp#X80P+vK$;Ui7K9?5j%sqAL zn|dQ9`=zej>&mh0!ZS^ZC4O9YWoSw(H(TS-vBAof_*TNd{B@4&7ff($*cUHYWl`j<3g zBYgh+L8I(QJ3cns8_80Bk9H|C@xKDKdh%JhKRRFCoKU-%^`rX4+`!7}oyqlwPPg9{ z<-lK6Pk_8x+pCb({Cm{<$jJQ99?GT5$G#w~ULL3A9f6%{cRAd!S$G*2!uRI+dFIZB zFG9QJ@AQ=Zt5@3oBJTZwrJm3Q^#hUK9Ru9v5;7a2zWl=0uC z}sf3&fn0x-_=KMe#6{c0c=tfeSF1ok3oac{Po?MEj|C0WlGI$ zGpn`=h%x%0q5;x1!q>n4Fr4C-N?EHKlzI0Nvbc5BSMJA*d);nDA^SLxvGDB?cs94^ z#hbGvW@`Npno8`lR;t2{@>O6! zTq6JHD=&Ea2e!4%BkvYO|CTVD*=)_t}5_|`udL88VaS-Y9>tM;- zF96Mca>rv(((pmAin!kqhuWNNK5D+(A)ud@eEhp5QrIvh z&%4(&0NsIp6&;fj2OoU|D%IMaik{3llfp-gi~Lhxt@nT6tNoVe_A>Y59F|9KHkoya zY8rnn>a^GSP7aYglnk!kT(LAKM_b_;C%#OP6P9d%?Qg-+ZY)vUm&nCUdpnc6fs~bHwMK zt(;C^jLcj|hG+79#qSkIq)$Ur8Unm#YpwSjA}vdv+aeaI{#PfPfz^D zwk-I%(6T6G#7{@hePYr88;WIXXjaO z9a!4`{&;!DlN;+LYi8S1JNNSPUo^u=*czx!{cN^ox45)6zT#d$y0B zM+*F_*OP;V9PgVxS?okS0kU=-)PjvhJjCA|#B>A}909R%Eu*`iyte^{K%H|2>A})R z50QOu#9}JooC*56fso=8&1JYi+%nf z5Re`})tlEzernQJnsG#gq7Ll#u=4%+?rjkC_$?~tUjAz=@4%kTo4Ob--H8F%!>_z> zyAWfbGXBoj6VjLCG|Gu2h-CwS>w$FtavlBc#ToccWyc;QGVSjF7AndtG?Ol6NdRSv zFf3J3zJz!=W8=b$UW=y!V?(X4e+F(YR+N@TV*fe;2Oa6KG)~j;vUuxrz;)LQdui_ zd|!v7l_p*jTU`IfJtk5^DFI*wLhKtCSJx+OVgni9b6)D zyJQ^73(o;tYJGgOc~yuw8A_VFwQz|jc(ye2LBjmxBUFM@h)y~_clLp%Y2$FeCbM`1 zYqT&!?vLU0I7Lb?9urf|8F(UX!Amw%!fwt*6u16J-UYL_q)kkofcLDrIq5a0k4(#p zMLD0w`RtL*vz_B3Cd!v)jwH<6641ft(iT91T+p%sOWORz@WLKu=;EP&QjzjlQ>rb&F^hm?}pK0+gwGcxFDHO7Q_*;jA z-P|t|F)kN(&tw*hJrxRR_fpgiGh#`PLy{SjUu^9)~{Mt5-_unr~Cvyw7FTHgeE5Z}oH>=aP_->wt1f)%`cEDcIW*Z-_Qyhg`7&Ie)M5R_P z{KC#(AeR!`LLV2Gl)A$6_RvzxtRn9niB-P-byyUDqByh*jxjUOzj`hbJ;f6Iq~v^4 z8n{g$QUM)K&==?-JR?AkCE9|!UVzp~DOnOWbLt`X@Z!E-qq!_J&Xr?iO&$V(q~acB z{uS#t58Y3?z<$Cuj?P@!!k`Uls4&#j)!kFRQ)YFKY^HYsocPnXrtFCCfp0lBca+Yu z3cyvFHmo!p>Y7E*eMSQ~GL=~I%liGb;zpv^{?Tt74ho58IPBsnre;FV4mW80B-b5o%D&*Nf6oG?ogRrv5fmw#cM8xW$njmX<7<9CdLA_{=al57%dm+TX5Gco)s-OBnilW@=*>Tfnd^I!K|AgYS zeQ=dpOLNh_4Nb-n$KeMLR!SV1rDYlA2iP?=h3;%|8iHV|TKDz{!>I#?oKDY=qG-u|_d?9#m{fYUs7@asEkO%l|`V6sVGh@R&Omt-4rnEb1Z57uBTWv!^RDbu^=Jm#9LzF8e-Gs zO|cs%W(M>$rkCzy0dp(=v1N8cy$)k=#YW-#e!I|O#%j<-dtH!bJqeUwN`_69GM2}k zjNQn=e;02|JsV3BW(qFYV65mL4fVmJgB#I~xY$7M8GT}<&vD!|6HP~B3}nQQZya8Z zMhACsPB^{>X{x~FK>;!wF=4KaGpCV-{c*%{4Kb*DtL>?ofsib3(3Uw^K5Zdb7MZCZ zm*Y3Q<}BwQ68z@%PhM%1PRn0TPWpTg1Clp}v)VcgEfdAXBvEZ`!?ocg^{2$aTDReA zfq@Hm0##)ho5Zqn>x_&;M{IZF0PPYUlircQy1rI1t*DcAfXGgL3~?Pi+^48Fm4#8( z7b@?&<1B0>FQv}tvA9|{jcXr~5}*#4R&dRHC5A3>9YW9QLqNkD9U*bBZ5L;nL z8om?~D!5X)dX(IvuK^0u5I_|L#+5_l*GhO2$Y-d7+ka;1B<9dwYD(+VgIh=~OaM)_i=W9V4ZsnYqN+Gi8Ye>n{!IcLKKIFT?X*+jY z6elHza|~DIs+rP1_hMoH6%#cUv#LwwNA?J@G!7?Vj-@T66}VcK+{;F%n}|)9fM4K3 zY>lG{7?rdIz>`Cp)`l{E$yk!obnDc^&}qg|kLK!^dTam0wxej>CGwzRk~ydZ6~#R2 z*&ME~0Xc|yVbMRcZ04qvK9nCN2ZY)+uU^*}o43;wCk?A;icObZDtCfKorOFi_4F{gy`sF! za*59^8;1)h`yS{rSI^x?bFJcYDT@f~_i}5~l2#GCZEfwTlU;mR&v?C}Y+rZu;$(B%VH z)+T4*=*2DnrUFX5 zL>j&k@4b4O3`eFZZZ+&>fY>Ko+a%Rk`_$6T41Mczm+_-wNny@CBN>`vQT_{F31|xg z+O$HsR{4fJc^v=UI;tww+aZ|p_h=|bib;N-$PwA6(WkL4eqS{MXcQ>We~QXKG-Dl; zBqpq~FPyWcNgkJ1EmXB6S2DeJpUK1rA7VVPMPFPPlJeGn_?iK#OMi1 zzxJt_^Q(VV(5t(*np8TsB5K8FgzPoX460zxmb=R&lIZTyobu^hZ#h_;{QhYPTDZC; zkUo3gH*dIrX={Bt@}y;J-kk7hTZ-hqf^WbYz|7MDAOI-PC*IpH#>k%Lu(f_Tx&N|f zqPK#H%qnW@Mld;%=u_+vEqgigN4+u~kO84SFs?golJ*fMJyE_31f0JzQ~BtX6CJ9- z>@$D&fa*4GqBG+O^P>F8QFzbbGc(-ud+t}34Wr)(INTN!-cx~JIs`HHy|vo-U!bhOxy!2e_Hqh8jE&WoqJ{f5_L= zyEL;x?JAA!Ky^<}HzBv9ZU;_hcq30IdpoRd{C%rx(u@p~HZE#A-aEMm3kvDPiclDTLfK@NUF&3RJ8aH|LODjcZ zd@ie8EJwpJFFk`(?JojQq>XsZS>hTJ5egI0)Hb?op?1=ol*F!Vm07i=azo~ z7_ZCtb)B6KPPLgEQluEhqB>;!)R7`3bNqL?qys3WOx6ga8_Gts48fep)3@NBa&?cg4oA9|_a=TGi5^I*s`4zIIyX0Q z3fOd%(QAc;!zt>6zjb30RVsgB^6B->>5{Dftz)`zP+$F8DdCEhP|UI1{bw1`2Muo~ zNZz)qtuMrXgbMom?%xD;+wGs~@y;_6FZEPVnfkbVZ#AzTAwNcnig#UUUVVclY5(=h za!(+JE~*YUrfP^uF(onGd$S*^0-(ub zQqQYtUL~V(yq3_pRsMkxYF-pGtSSA$#x~@8wB9|8+x)N(s*gD7C&bju>;gAC-|w^I=&v@*4Andw%gQAQxw47$Q9!9++WJ8Kfp z0&jWKaYo($)J!|)6a@ctZoh11!|jj^FE?nJCCQw&6fGk8?<&w6kmD^5`&#|izjTSR zzx(<=Z31)3*Jic4Sl{cr;eo}&my-5PGKt^wj<$GH`@M!!HC&0oXZFV1r6X-)XbZU6 zSmt%$lUfjs1p_&w8GROSy#0N&EI6^hhT_H|n+fDg0%+39=re!g?MqU?Jq1wyaB3>^ z`g7oHO_DuJoc%blA8yCZD*5i`eGNQA)G33czmLEtq;6ZT_Uu)Ra+`0$W#=x9)`nYK z!|m)q@%1kUV&cP+gzlUXvEL25I~0EzDGCSMCyqx0Pgq(q8iZW2s(NDl21Pt`noIuT zDITHYy}ywuw9}UZnqFLWs>YUe2}X#OC3+my6&czybfZ+DBs*-q8n!YuSFZI=#_ubD z$_5rib-Yo^=#~Zkqx^e^mUj!KcuMJNe+8j5LW5$nn|K*gd#;!Ig% znNlmU4%=9>Mn#`Xlpnz$%daLq4SU%s+(~*Vo9nszi{2mf`I`r}bino66Yj@R;t_vC znLR%&`Sovbz^smAHmQteo*aF?xBps^lBzc{aXhqw3?yR#;x!qbMZ{BEDqdy$1fY(lJ0! zFg+GareBqx;pC^EUZg2GpP_7skdFZyr==CF=n!#_`3(N5NAmz<;1BfFD%yh6tX(uV zaPJJjx{iH8^u1kYgJnVNTs50>tVO~cH-@6mDC>uc1!%4p}&Vn4TJjwM|s4X^8K zShxpG+ZE*5%z^U{!NLeyi!; z6({ofXq&l0aA%f&=cn+BDcK6#@gxrEX;{u}-Q)5VbTa_=)I#br@U*tVV`DeYn6f=y zkH~s>)9?uYiQD&$t}AP2!OzQyIWFt$*J8LDdVrbvA+NCT@NZqCqOQd4AkaN-C*t2A zsWz&scfwQ#IjtwL}NG3&NSjd$|$9Pv$(?`9P}Cxm&8mq{(JA%ElM=n;+tq}1*fmK z#+bxbL(kA+2A^>(+JbB2j>cHz*1baDHGBt;!F{zg#)P+8vVdDX;MM_O7mYEFBthp4 z;Naw*zU=cCbm^XmYD-`&sw`!tx?y+~(EfM9&ybzo3+8@$1(}0)*}8df>12$XAo@*ga*pgPjHO#V-K`=T94H5J54uf0ClS{S&$mJFQD)BhD&70@>sm1%<*h9ZHpYv4m)M6*3Fo3Dcc$wJMj{o!Hu9+_dGMCRN{vTD}0Z;Y!|NpikGAdE2q>!7HorHGXn~^JfW@KDj_PA79LS4c& z8>H+#GVU!!*G$Gai3*3Vut zEL}N%IFWEjKN|aY4nTk?y;V9MPn%7=bt?Aj9WuK%oW^fG8)}oVq(7tgp4}g`kJ%sHV*-wsAd449tJYJEO@i=Q5Z;g zKL%O5LP=HpD&GPvJYjPfdNw@{yJPEZ)psuV9?h5kThw5z!uN(`5~F4NcAqYLZ-h!J z%N6(W^&0V&L0P54Sg-_y%$+V*L3YKZh{7x5m>I`NJb>ZB2X#}Xh5s7A%JC;&6{Jzw z?p)YO7nl}-u79F)w)S)C2mm@bTN&jyJTcw0GQKXI8X2;XSGZh-5L_rqh*K&6Nx9Ru z^(-Kg&Lv|MhiV!%hVinrd>$7PVZTCb$vnnjNm}O76{REY4|$=`ND9Z*5Lo;KlJ@vY zgI-G?1CoR^jPZ}ZATvATxN(l8Wmn=^K@I@f?HF_HwtDVbxE^2qk>q#?C9OR!ZJ@Vr63{ z^T8%aj-zCDAxN6dB&hI5u4l^uws2&oVSsLG&&K|xd%&$;?fXPGVv7ha0mR_hPz%@6 zk=b@gLWn(%Z8z{`0&CD&Zm8#OTP82kX>q5o|ErH7?Dgd-tdDmugp@h9JyWm|(FGL) zO0EMf#|2-dZcYt)RSNLz|x8t--&G*SL;$114&4e;3M5-O(vOE%1{#1K605rlrgQG9~;{huG;8WYI z*!3`=_-aPy4h9BHm)N@-3@gL(`QoKF*z0NzJ{eNw0D*9u^v82gp31dknP5-Emt81% zSrk8&sM8@3RX%Ln+Xr`>}_J9Lt^oPFp1d9&KTFVS5)L`ib8QYe<;zB$oui~WE z=U!DnTik?nGV;BBe%${_^0dXaMCSrgOYz?3ww-eljD+W77xI;XOGkv}iddy}O;4pC z0gaQh?aigN@2tHWTWQ-p7to?}=qF~f>{@sLK_{a}qBF-ul3Hh}I3O$3o>dfYl}N}| zbdaq5REqr@pjPs_$|64*KEp2THG7D(ZRD!XgIj}(c<`#4H@=0k*fh2Hsa<`~bUOUr z`_{a0@EQ45nqx(}h^;G$&WJvhN}zr@7_X#;g+C)D0ok@szcs_(p5UN1MxKxhmctCb z+5WbMhOlY8P?navj1~oWOCl$QPx7A>t$zNPCo;NaW(BW4zDC^{!wN(;`_F94nyoB9 zvRR_HlQ(uJ?-}aODBnqeg-DS}mb@Cgg@Erpr=7mH*IZNt3R3RzDZj{RJ5TGQe7TzA z7#kS3(j*roHz(E`d;t$mJGP|GIl4pp}UwkYz z8R|h8D>wyUPWA`-AP64cZqEOnzue=lv3}i}XZ;LJVEHMo>bNzili-yspE_>kwJT4!Z`96TyCADht3=hh$P`)NxQVI4=!->Cd> zwU55g^+o0c?*SIRByaYU7nDT`n{JSugWBu{nh*mtb3fv8#|HdV7r%2y{l`-!&Hey* zg|8Zo_;snXC8N`UpQ47}4JN3?Z<&rPWr@J*;B8p+r@(B^5wbq@9+_NsB@+&Y@3-03 zpporxBk!|1jy2HyerA(N*Sn|gQtMtA@hA1l7Oz?5rBJoazIDXd%nhFiUhb%AqVd{4=?xt{ z;O*Fa(RRD3B*T8n(>3KV7U>c^^Yu@7gvFd};Y3>Pix*ULqxHFvXfQC4-TUP6S$sTq zj$w8x0+YH7jK5-G5-tfkBZZBd&~+FB3mJtUKiD?*5_?@X zegi~jev|1%(fBGr3>ob2qwktWvKz7MiP!}H`a`|)_yTT5aY*&63!q>mcN?_3{1Gir z0eML6?!Tg{vo>Db!8>bhYU?#-IK?WVH|OR{{G?vMJ1bXV>#cgHUUSVo+m zLWqpuYAe?dsGRzH%Q&)VB8}4!5#3PbEcvh^`e3KS0R1)?yF@(C#}I5fz>aDmU0wjz z(yodV=^bMxzzbszF-@M1^ZQ^v*!0;&#k&rLp1@kwuUpetB6X3I|h z5%_)lDqb6+55AwIsFE`^_Z&}*M6+uFSD3;_zLUYdM;hdPetSu3liyw|;jY`ce1S8w zu{MGla{T%l=ieB7^QklfHTd}T*0EH^em-}-PTez}+lO+8tXVC&hF*rwX#u0>UdvLjX5HrgLiSxH7ROlIeg7lSb?p|W z_w=YbKIr4=(d>_(ta59bT9-S5njV(MyeMrSgJD!>!akmQpto|egwLS|!~-_)8XDDf zeOCH~{PBdty@9w_ch=~FC58Puxfz72053Wn(akOk1|Rz1&9^BBNqWW`lXysLN8Pgy zm2K-diTG$RWl@%qukUrjw*>;UQ@vjcOcJ#|AW${F&}JX^u@+r{)q`)@)qpqwhTtFY zp_VVukzuX_V&SDh$S7ySs=1KU`l4VAd{HNZ!?G(NCe1ho3L^|lrF5Q z-8~Y6M?Fwm6-OfSz|}rQ^}&f8FGIqZcA)BY#TpRy<1INet9S78SUcV(74FhEE%s>f zzOz*rs%}V+)lj6#AxLw-nP`g6%vb`frq?Y8v~vO{OJ%R_ORPNcgstWKJc<9 z@K$8CE6H--H&FM;EVj|gc->=pi`UfSgU>5pp1f=&f=FxUu;zosvop#zOZ1imOjJQ` zT}>jPOydbbjYYoM4rPRvvunv3a+qrvc$R=byOtLSjFvo_XWaB6O5663oP07nt z8b2dcji+%&gzT)ao9PzkuD5v7D^9Zx{UOI-^JPYs~Elhr8PA67ebvvU`AyiLOF^|mTHFyPO%tc}-b%ZhzUz_HODFs^_&syi%OrSopNhKdD`PhOsnu7F8@Zefd`+@Fa7 zj*mSxa&lF|J59z<#q}E1G(C6?-TC;#dh+&`B~+h%-Jd2eb$bFeg>*6hesxJqt+hmNSY2hlE@lcF8bBE1 zbst*XPjSMNvJw(4@4w(3xtd>8Ul_C2_VLsYoE}Uz1@2C1zz|TxIuZ_|9nbDojvpj% zT&VA@8muD;Lq!Vlr|$8C2xD3MT9_CmH{mNtOl_lEDhBDMQrC|Bup0!)5-Pe5s0M<1 zP6Dz+opf8utDaLK5*HtvfDX^JK=Wnrf?Yg-CkY(%8w3>6g=seHOtE86n<@r*{%9wp z-x3V8Li`#4`JK;W;V*aM!v+%wxT`SDR>ob7M60KWqB`$-7~NAY0{G zclu_8@l$kRjO*Is#-^(YAFQ966U!Q$#7f~Uk3PC%@^IVG)sH=woF3f!sJ1(*MNJ@P z$Wx9gDw*P}pQOM))}$bZ@4DOVJQt;&HM@QzzrHBRHylPWefgqE&m7WXKdq2`>oZlz z@3u|@dthj);>u1k9H_?jERbmuX4Q8)FPVzJd{q*l#DlTZSp#?d8QB2Sv56490<%I% zg6C-aC}XOQ^P>{+Bt_;;?19`}ZeBS`D+CO|GZ_xjTWGG+F{Xx9@j_Q6Gt-c(DL}f+ z=jzw$EZRLquBuW5$Oql~XFQER(HAEVg9TW`pO37nyitX-+CxueJg>&e&o(l2Zw*&gXk;IFDcYKG z;aA(&yX80jDv!39ZhSN&eR3$ zx&pZh+)@RCBY@Nx9U41j8oWg#@_trAgCp~bAO!`kghX)WBsAP$UfDsxfoG^7O#zB* zauz{$Ff$i*1@RW^OOqhC;^UyB#JaqqBy_3GoI#(YQcbciZ4X%*AGgc%hw=PWzAT)9r@q29ZzNTTfPLP<>@Hfx8);e(HJ595-0*Bu!J!s88E zy`46EJEsLMN4nT%R8I{k7MnK>-izzoU!n=8oFj8leDOiVx)~Sp3ceMIXf3889(?t# z+Y7RKLGM*PL$)nPV+ayTZ*^B&=Yy9P@KNAiGcpJMDlj@giv4dXCOwl=Zg9fA^BInp zrpOdGStbd;*IB*(@HxzX!e2!qco;Y4DymU<@Y&$;AhHBL+7JOU+^K)}KQ~hh8UWvU zv0lIWGU00)_PR#DkstqObsN@o87~zt=^xzo77DzfLV>=BUut0`UtJvLkJyzKw~XP1 z)YJ_XSA@uFNCcz4!AwU&URYqak_lVY$ZMVO!bE}!v$`c{Tr_sg(@@e0WQ2(bhVcs4 zXp$9Y+B!y71@XWN9XYUl>?Av3Me+QQM;VYh(g56x0Bk!(%}f6LDKp2?62OU6bIDZT zv-_&pv$(5(^5)#1=)1jk10}q#-p%)3m|2J+DP6DJigm#)N-oL7W*i&INtPRRuF*s` zefJ?f^`W~3>BKv;UyG4=3BxNEe|<1>HNS@5J1v8hFC*9MLd#2OCzdQpHYG4;A#B1W^*+4Gz0P&tqI7p5LAQ63m<$lMpGNN<@ zVQdfa31Qq^5?%E!xcJs1?79Sbr$qcHF@Zp3!-4v*N1$%yDZvIhR1t$+M-s;7z_u9c z>II~oL}7=fI3|q|lG?x|;fSjo1a5f9BuBpR@=h`VKl~u}-G-Y-q}S`7rvW0Df#)cm2iuof8u8i|*k_YgHpzcl#AUf$Z3>?jqohWS?(*)vOdR&wo zkfhVl^(q$>?wR2YuS%-7>l7yFG{|KCjXPun$^bh-dY3Asw2}d`&y+Wy2re|3Fct>t z#CkAt73{Hm7UX|}>-{HCU`~|j1mbB3= zbEjN0@nMCjZm$|!@=>{a-U-IcIL>R;+`05)g%6BXI80qXR!a1YrQw7Fw^0uNsK2WP zV&d&>Yek8f1MH!KfqsZz63n5+v1fps<(a(qi*Ikv+vD>dN>`ZwEh=!B{|;(RM(iZD zty{BnAC`l9Ji$O?!Wdadab^3DsgLpqSV6EuMU;*fNTG^>I>}=wtmU82t~}UvFv5E7-IvV-`E3#=OneQ6jyF1e8pTgo*Db`rGD{c1%JN@ zt@tXQ&U(nu`hlLqw&nVH&S5TvhiF5DO9z9rKHUBK(~k;p+^0Q2Ni0XWXdtMR;d3lK zd+QKA6Te&aDM6jgA7PT9qnD)95qur+f+YuylX5}N`pQYpbp;Ai=`E;!av+RdBaF$j zX%|1#>0m>%)_v4*0p$vrPu1l7BnYPVC57r)dy+RjzKyv^2jU!!c zPDzWV#A{8f+@9q>~ zd_MBf|5nWpYbtH%`O?ah>%`^!ft1(4WPSHISL{sBVcU11o;_T)kfJ={hIB`P8hRu8t2`tKtV_fO{zHtBTi zLLEbg@5Z*_NxK&{u%?s#pgK;~!6(_2%?QA%h?9j|Cc$IcES=ItSnwGvVRdeH?pW`l zp4*Xl&m&U-xjdf^Az;J54UB4QPTumwJ1R1bMqb(MfJLeIt>!pe}m#uKn*mNqXETO@R1bc zY5?;JiDM`L)Q(voe)(=b!aFo4j5$5=wqCc5{Jv;<9xLrqkmegur}t28 zZ-?BdjCph}h>o-L+AQYmU)*5ezk@$t{XaMFH98-`VfW(i4sd25mrUpKdZU^<0WnT} zO@b7~@zKPN%!r@=Qqr+HQUQNVv3j6@SPq`MsW z)qaGrWl6=Au7s~^p!WN_&d9DnP}a3llJGTz`Mb5TqPq8Oor!tsShFFhse9uB-1O~~ zpSlh{EXx-VztWjAlb6G$4PB4~#d*Q^FYBgHuo|SdL|Y#NtJeN4f5C|Dhyge}OGx!%=7FaA9+6 z-~NwUZsg;e*6mx7zhw<#t}2%YYj6Dh=KA0iLK#Yy0Ox}eN>E3nl>gNNaLIt9X2-jB z*z%g9KA6AiIdEoBDKzui%}vDk&2g1K<^6Z?K=03au%#|U1L*R+Mn?W_-04r z6~C|xMXV_1+R)#~e$h^wdN2YGpR}fX68+a%gRO8MmvpMhLg(ggGz~MoubttJ&hjF|6gng*&H;{DLAp_DSO%H;4cAD!N=B<3GnBS-w>f`yVI{GIMZ+^7l z^1oT__-|H&3n|TV_@dcqiNZ@N7i6v-Jo;!2RPI8YEhkMqsJnGpnp#KG?*CJ*B3Zmu z&4wz52gM(40P2Q0Ugu@cecIB;85#7_8yt#bO+>XricdtEJ+wB@1d79J@A2qw?Wni@ zj&BEl=2V=l04LS}6F&wMk_4xI?f`}pH(1s-KlE+%#lKHo=Ji@{%6pisJ##dLp^q)y6Za3>!96DmS7J4@sUGQkb zspTXhPYi#n#&iEq`8ZJG(Xw@HOnl}PNC!7a2ahaVRy=%DCdk*XW9y4S+1VhoyQ(=+cU&fALPm`6JKlbX#KnBdIUr24*G z>CXLv!};47ec>-y8J?o$5>RZ(96}H8L8yv3GmWMY($Cg3-5#_oY_<>cGWaCdJJ; z=-Yp0_mKUPlRMK{Z?+_}-E2*M)gxeAxKzOoj#mIyG+j8cl>(T$`5(jIYC<&~`7+gV zZBhDci~x{#KO`6FUF#z$|MQWLv0u zGve2v`=WP640vdNaqr#iOQCZA2=~9^l^xFQ$&&{dhj%QSqzs0@kwpCjgRs*^mwNWv zX1Tq}l=`b*VG#E3!9la0P&XB-g$iW4O{mrRE1($90a^R%P_#;)g(q|^CgY|Xs^`)_ zPJj15&6=)|QgCEFLvaft#KKo(-pvu0Y2nvb9}{GQ;TYFtN)ffgr^&}b5Iiv zGI^|zze?GC=*WJK9Re5W8x@^vu5okn#N=ZsTrw&*_L%0y>~Iia+cL?f#QziC;Iz2K zMY?9WkQd+AoIn8e}>w*m=)}Nwn(a2NzR!i!?dA1CQ%y zMKkX+cXgBh-d}Y5ujrdF>zD=~^c~~Ieg)fI$$$~wq(E&w9+MAWgX6Cb|1sCw^OoKJ z%$sQyi)b~G@<+?f5#DxxCbVqPHR&=oBCn0e+Mib^Sa{7%&{K8W zqJZybqlJEhmv7J*DN50$9(J;nSJvak@e)l(;yzR9^IIG}*zw=a>0s~q(0=135ZS#( zsY@UO!5PUm-jK_32E9-7!V9$LfUzH1wB-5L2B*i>Ys8iKO)uQ04Xezi5@T<^3qSFN zjqB_1T*%zM>FYgOD(-YsRDI{*TADA(ka|5mBzI{tKL58>$lT!MO_EXPU}tbIwF;Vz zHD-U_{zooHFmm_`>~Kipm=Olvr-!N2nLi@&mu`l5(Jw^vd<~a7Mi{RiVz#4NelEyp z6ahh6uJNT_zG%ZP;v;0R`yu(5lWs zCKXn_{!hp1D$B%k;IW3>(C@KD^|9CO$Mla8R;ufcG2V;ke8u<+bP_a37JpTl`qjao z`dWxaY89Yq{~mmmKt`kP!)i}g988@M_Uz!KZS^m!wz#x!!av8ivm$ftHZ%#^O6wsf z;)tsQ#!_U(^E(HOuiL^1paG{y5(7j4f$_CO%+$44yW5;ERS!#c1WDr zl?sZGKX2hxld|itXpT(bkk0mXPlN{TG_JCK&>zVS zm4ARz_dVh$C$@{DU>wjTnmn^x4Q1O^nC~}{#mQ&EXtndj^pg@l>57DCfYTB!-Wh)y zK40F@X@rR$6x{4>Rk=acAw8B->}?;U|I!`{;;;fDfnYP!O-O!05tuua-iMz%P$(9u#z zHC#*uG)pXfR{F;07{M9=I2Ld%98)A7lz1X6d6r!#x^4ue zj42X=5MmJxpj%qYfknNWjr63q-|4Fh&d6};^hIdIN$wznw5D!b{50pNcz2d0^g%RR z=C!5Xc8cd~L8u>Yc5;9lblnw%07uFWy2fLEKZJXcz97~fuiV3xEWho9uHa^;%n_YUB9g-vS?CS2esM*wWiSVF zz^4ie_CWnteV)AF!rwp`M69GgD->DEycEe8B-ph!HeUW|H^M_;=er{Ey1me0GYG`f zh*t@$P?4e_=TG9rzEx`Vd%t%})c}pRo$0-6Gc^k}R3?R& zPetEkOd>+wP4RbVIc67yq_cg+v$yvH&9jz7uS*~J09q(T%Or(;R&GATXPGYo=TaoiKLM{qo{QA;xl***88y&0urXfi|Gcc24E6T6y{oF}kso?JJrG zsTXCDH>VjKN3VQJ*JR#j`AsVOezEy_idLebketWsyX#b>kXEJtld-e)xYPkwXgWyqH_n{otKP_ZRcy0W zv{t#ny_zW?UZ%ZUPE&(0WrNm!Rba8<7-3kHck{jvbm4v6kj}AjQq2KrW;Z72))wBZ|Hqgfm(H(QStpZTY(^evv8>=0NbA+|5fIjD|-E{3%gGu?geIWo>} zwTHITnf&gR`55#wM0o~5=N;@9f2m%Xq5i$?Kj%A_1dST<3&BcZONp%t3dmPcz z09azU?cN4e(E_rS2hfi3yOu#WG_7UaSUi(X^F3$J%ieQ~i(s7E(!<02*+zOnJ=nkn=4>gG+7M{uZMc_-wvWsbY??CQg~W!+un z#~hew=YafCL_L^Lu{CG}uE2aZIkxohCL1+NHNN~1lR%+O41plfOyNv-r3ul) zow%sk1moG26jsNiC`IoQzzUn_&jAdfiY86`q9VEH8$Mryo_jK2>QlQD#Z5p%H{(sY zF)OpV$hIsx_bBw>mLKnhetSmJXyK$vCBbd|S73rC3g^l)O3xTD`_X|Wp~GN(!|H2s ziHe+{=k75q@4Bc&P{x>2SAI+F5@yvmy0=QCQ~y$Egct*W-2phQCF6opicD%{q8f6#Z)8roQeuos1tKq z4_hnhlw4-haY7$$M8w81H}0(D<|N36-rk@$R7Bljw6;$N-QVsMR-A)oCXE4#pX1K& z<~M}}8s0LA3iSbXjcBo4H^Q_Ic7RO)U}JIwS^C?q^V6d|9v$xL3Cb?=eGcvj;SW#%p3x~n)UkWV_^AbX5hLblq#NZSB_nU(Qw-BhNO zfIK>W@=}uwCqUm6cH5(1Gn~x+;;C(;U4ZMe;W5oCB3|*qAWxG|6D}gWBOCVOdmI9F zHXG9|KagS)0}3!94mhba&YoF_Uhg#&+UAkPFcP*?=K|b43unX!00h#!0`qHl&Z@NU zr_M+Vco|tt+2_F)=oT=Jh&W)P`&bfP5IZBv63#(RuuqV=hCWQ$>(?klw?@QmZ4<8m z*=*2l@m-}l)i=aV$&rQZ@2+7*%s`1OhW+bS-KvCuLB$zj>)HizKuApj`S=&uZE)%W z9N0bn#7C@kh#EdGW0K)c=HQpF{F_9d55^nejIOHG`hrslKue!jh%nx3oA%<`nOdAN zNo4bGpNb<83d>8cnq~_t#__LZW(l&L%$)&Bd*37W$H0Q#G~grRwuGM-r*2E(X%s`K ziu1b?^-E1GYy_W2(Jj893o4(9=T$6f%dc#zJo2kAkD&ZMVo!oPJzd-hZrxt-O}rTx z36t;)$smkRjBP!Q<`YKB6Bmvjv$NdX+K`Rn7IVb{JI=f1N5c&0yn6$483=klSJWrS ze`;EFdafcW?5b~p?2<)p6>}c=B+rD>iK-}of&6}>Rb03ty>IC_XlDxtvL*+1@iuWW za!IQ|fa2KK5!%gof-=tR%L+`cbMd9gMHRQGNdTEtrkAL{eO3F){E2J`f8!<(^xKJH z3@RS0R;G>wHFj=(tJ(gSY@Cf>!5;R&XGq9adOYQv^p2rIrSg~f8JZLUn4XiT3Ce_9 zmL5cvXmNN5v)^g8=GMl%oW(rlL1c;*Iw)Hb+xS3U#A&wa2_ffdida$3ecL!Q7}9%fEy2z?dyp60+svB?%> zb?!T)YFMb`mScIIeMZ!p}Q zbJ1U3Vi`BQF%sNz4ksZBFf753%v~T4G(p!^-BL?Y;+2}F;#422?=JOWiDN;)KWMH< zzbVD#wdvhN5ObK%K%wH2j@0z=1dbr!?;(Z0&p2|eRXs=Ztj&R&0j^C!Al`g)Fp%xe z7)8MY9vm!9u)f`~VBmFEYGx_rm6H{VpCIdQYKmk{inz(B4^y92OZ-~}Tg6%dPbG;q zTxuz0meC}he|qL@%ZIv|9WUtZ2_IMrWc#QVh#*hqcx=6Ol-L2N(ES4ONw{^kAj`=X zxA)(jU{O%z)U*k*P{FcCRaY@xeDV?VcKpni1*OH82Ui7MVKrbpvrC2_X#DX2Iu%|& z!vjENWIkBrxk~_TbdJ6S?pqva9!VZwT~N-BpeO_J^cgLkji*#s(o)XX_5!q8dQJ$= zBp!K%>~s1w)7u{s*xDm|Q`13Ip!Rn;E5xtJ@Mz{lyZg#72Dyuk z_%LyDfB>@lo4D2r>yu10EHspHtnN60uD{V;AD%W=4t)Q~0)aC?wB#k+X8E>S`z^sH zWz~ksjB|RM!n~Rz{>E8Li_?Ab$tdljth>}^0BEzq3N2g&P(qmj(wQT7W*2H73iTa841Ds{0I(STL}9l6yg1KZ(jEr94fttz^9>LDb*KThZ`4K~%A&P+p`&zDmqLO1uM(#B6%_w*ZBcnx z092V|MY^Q=+X9Y_xOYpZ31tbWeKY$nNkb>n#f5LLGd@7^*s|e7RN;w8p=S4q#V_=; zeM^Qyoj{m_jg8$!n>$ax3X7gIM`>>=#ZUv;Wl#s$f5pd)coDN8?zHa_RQ`n?J(!VW zNi>}vL8XXMv=NFa;*)){tk0d9^N7B(wcPjMyu&z`_X7_75>A@H*E&aE8=g6f;j}_= zK$S{&>1!8#t}f0@Hqy5E7{4|Z%`fj{YH@nT0|;M85=0@)&yL23k0wkX$qT9v^tQQf ziy3o6a&ucs)*Luy;<*;LYn`!>wokVfrB5xTZQDYUtHo8b-<8jH{UqhNH$Z1lYl|xY z?B!|cH4j4bW*6zu!>?+HL3yz0*tK5nZRL}Li=ZJaN^%rnK3rte1C~Y|!Y2{AgM2!B zFWw0A_KP-SYJyt}r1Ci41*kp__q=^VB{53BgUeE1KzQqoAS$o6rxO>gD&6Oj7U;MR ze#l4528TUwZ1}flS*e-n*UXm0Be_ zw+4ZT6QtNl&>psCKYtW+tJ~iAN1$&)RWXLF8zFE$S7Ik{om#JP0jul1h3Jw^UV-c* z3q9CoV{eF3vOnAMn`xeQ6)QCJj^NVAa6*9T3wUcVqpvxmhlB$p8auK{lZY+FQ7CzS z8Gs@H@d%K!UJderXUfk(3*YIB2^YPjVZiQ_&8cG&6T&yU!N!9x*IMb9J{?n(_=wIJ zGXjEL7WggMSI$T$5A`b8boXUu3o=@T^fgWk1U0}Ds-HsrG{^7s4EFwO`MEaQ_s*R{Ry}< zcQS)5^ylcH^K5eE`n}Pio7VDAh6>-y^z>PQP*U|39~D@f{#55Twe=7s-$V8!EMwx; z_cwR1?RVXq!l|;^ZK=S$j=U)=@e%N~srxYyl{-N&!GvM})1C!BfDN> z>NnNWzDKoR85e2t@!jr4kK^$anOjp>7l|2-<;5q3#m-kYtIn^6UP5;$PQ?c0EiTH( z*CAxNzZ{gGoIJCsXRDL8q>k8M(*2D-L;vi34Adi{-u7jN0mBdE0M+mjn_CabA{wNg zy~-vUBZaLruKJ8rETsr3r;$_yt7}(Tp>JyCT|+^78hvK%*C_eJo{{I8IhRko_T1M> zTn_7v`6WwH#Vr)zjH+##@BR{*tvdWW^y$}URm#oV$o7?KKJAW5=abPcvzFPKxb!hI zVBW=p*utc5L72%Y5oso8;We{2Icx_{`$QwaTAq2$z7{aG(J&K0t(ux+L=&pAXKwYe z(!(@#6@Lwy-3<7MdhvYeV7BJA(4h%7*%{9ut-qwX*8}(I7B|Xbc0_fU<6m=d&m7nx zIy+ahX93G!qKiD|k>k0yb?poV89*}S3-Fcc93uT$KRF^iZ#LcZNA-14fc?s?*?zG7 z%-=Q_`wyjPH&y&-<%DM(Q%As9zi_jZ&%twG92}Sz$pESnbo$oV+6cjIMo<5LrS;vW)442r}pdir&^|q-Yg~Ifr@^ft=43ML)ipk*_gRnUNy4n=+ zB>PQmSAE~|BU5yX>E3&O75Bvd*m*EyPAiQ!oeWn6_^o}tgFfuj0BuyQz1ZH1C{Z1? zVe?w%u4e%UXXpF`D|GIT7nPy7PMj3oW?3{TTf5JHr+$EpY2l=N9+vk2Yn57T6|P4$ zG1Gr^#o%V6yZrRRq%WFy71&s_MALBW3$8OFaVCmwX0yHa&E;$LsMT|oF$inVYr7Xt40y5J z!AhOzKOuU+4Lvy;oS{@ODV?|PoYHhqSk8@R_Uf>Os89y|&wnn6nRJ)Yo~G#~y#!0& zH@9N4xVMWtpdkCMUFX!a@zip?b@OtAZ3IQz%cOix@ojTW-fVU6BbM@M72@Kgci7Cl z_@n(-9$OH?{TbGlClz`YmeXLvhcJ7fF@zy?TghG_H17fBQyNZw4y5 zW6(q8VH6d@&!EIeCNK>S>e=^|_Fgy?1%A&8mxCQ%BvOT|wVR`W!dNKOf;qCkD#$gfGR0*AgKyqDg@B`zkHy}e!-A-za5Z&68WSoT2`ycswN0^BjH^}igD6IbQl`DU&xEq;L6Pck)1 z=-8&HA#0f4MasS zW8Rn?EH8g01x-|0E)C&7D^^|m+EZQbuLh^S(p~4msi0P~dw5%(p7MpPJb21z?L-@Y^mHq1ArX$fe|oNIIXt6`|MULl$lBcW zoW~a4%4d>RVKS=#uOe@H{#kejvKe}Jj4@RxPB)+4pj)J@Y-!4$`%V{xEz z03cJXg%LAqafY61ioY+hK@`W6`et8frzMn^dw?kGoDa73!t|ZLBReL2m_4BLugK}X zIRUN0sv_hE*^MA1QMQbqk9&9H{S}dhpG|-CqBdYhvf5O}^!YpAf@wYmnKpXc+sl2^ z{Q0_tAur1aB3(o)&)!cOqKv}Bk7Ot7+kBjqDbwhg;I&uxqBhUdJZqv1lBSaDug7r| zJn3{jNK~u!4y_ky-m}0mdq-$lKj6?en>qEFLGM26jtUT~XFJd{XL@WgFj$?s!Q9ze zh|LY|<*9Qoy?D^BxW1+`bL@HL25=h8Kci(E<&yKT!#m4VqFumL&I9f-YWcC`1nkxZ zb7I+!7w?7EaZ?`g1Ni6U!$a+(_)sq|t!mP3n)EO!TpH8szhmTgN2Ku)ogJbrK?iee z{70Ad#aE=k>g+#5XBvR3RU{wqPWPUbNy+M2-|CAg={eldTv3xtJ zkhEAGXiO9bE=xQZmv#4&4B=Zav2a1AJq(B3jFZM~SvEs1@i!t-#Dgd$iEfbAz|(;_ z4(CH@e0F1rsN{01X)vjEk4*7L8OQ?us@B=gk&z|i3JfziB9QWJb-@KuUChCeGrVzO zS#s`Oma=)t~4|K?fjLj&aY~yoF0>&)R#IpLchNoD+YGT}ElXny%a_zOYWaYV=8zl>+mByxT z_pmxMs6ovy2%h~`xFXYeP$?%~(Z)yN(4zu|`omwoxV2vr2*p?O_(zMfWP*pUfar)L z*Sa)Q^EZB++nGCC`S;ga?m{qJ9994&B=vhD4N z11Jxn7D0_QalT^JHQu#25IgnU-$4infByIi8o=|JTwH?nZ;^FgCy1uZ2<-evclo^&z z?7bc#mx8gygT<8qSQW$yI|bIY-)K`m0mXp=ienoav}~$l81U+e_e8^ylcssi5}tpe{Yc)AIJV*@$23oF1K0Wwqb*kp9_WgB6p02ekEkWY+nk zQI`HMGJ5|6)yIz3!hEr7i{aXdsm<(Cq$+cR$rW3WV48-v?t66E(;r~<_)0ee)zvXY zt;}0JID4G%jDhD3K{i{_+iIRm`-FTdtYkpSutF6ngmTZ8xi<_q+gsaLF$^fZnxX~S z=Uj!z_Fsk4G99^iwXV*aVL*KCy)dxD;TWawXwyKDl#53$|7O_le1;$H5cl~vTKe;` zi#o`ljhd&D0H{$jyrDN{{4!k6@WV~Kok(_@p+}COoM!%v!NE?V=?Ea=wekr1t=Z&L zxy`MM38=Fhey^MsYt5t!`?;m{Ttl9{IK1VPgt}NVk&(!9&e0XUV8Ebt|7tOsIP8;C zi%TD1WwC(0PpY&vrf@*Z{W^w1sUY2ciNW(2ec-*ECIB9i`9LrJnK-qg%R|@BorxE> zc^fy=yYRdx;mHoKS~){j2YKWNTHN$rTFmS+flPQN|Q!RC|b3=1YbK$4a zPZW#PW6xt}d1=CQP5L-FKVTi3;f*)}9)SUVXO|Hp|mq)omZr)G*0l zY|5c6ohIkZQ?05f(?1o^cq(5TaQ8~pIhN5K0G6uWN*60)G2g`siDF&uS>3U@sj9qO zF$jzocuVXpZU|7X$2WaA*yFD*SOk6K?K@#C(BxT4xcx1905wPs$-Q_QFdp6fo}E@_ zd|Gec_IvN`rg>Hl^eU{U0!4S?JWE6c2o6&!?SCNxa8~+*Aa|+W?)LPPlc%%3qTtn9 z9Um>YT#?9+%v;Sr;fh-#M;@`cF&Pyl*H8?XFkNh&e&YO_@%YsRk1$;xT2YS7W2>uJ z9+W%Gac8eoW8n!15{+J%SCP65M4(o?n{)BZegLMzcN~JE-DR`62E#SwSH%hXZ>jv# zqwalVqe*Q_RQ>dU56T3y5o?I-jS$QHCN;*EV2|K=t91oCw+@4Ggbki-uxMUg1lK9A z=d6JThcuq9(U&d`%mB%B1BBSG;X!{zOGDS`w?)Vab2*HqE@ol+?lK1h8yc#HZEe^0 zx+BG=4K{)*`#t~(&0|{yV%#7_jMGAFuM9PGFM#mI8|hkqaorU(Ql$V7U?t0J865yo z#Hj^l5S}8Yyj-V6;)a&>*rG!`Dlof@2i{I13QWyWvdY!iUHdJU-o6hBN@CqV31cZs zf?W(b1RR0U)qaDp81DnlQK9Bt-x?FtI{{@_{1pW?tYUzx>bVx%Yr~d;&i;&xS|4EyrcWK)$n*YY*u+@WNw;7+6>=S%l@0nt@pHsipjwvZ-v%v^vyymo&uPr z$V5h<L+R^~y)f&@fSz%qF0G~ru9F&V_QpiaYccaFh$zHo5fC@JXk%}x*2 zD!1v3SyHOCFaB~kbT1fpaO_m_MtwUx_6VTk#3L@Ah`w9(X3@4nednV--1-YtqfHz!}DY+Tt z_bS`k4d+qOxyFjM_*~5@OzE;;+O7$JG+8O&FYidrYfLyOE85-cugGp;Y$qlIc~$9v zfJZY3VGF~=-XFut0)X>7Ig5)XLdlJG*tQI{#T)NezSwG99(+@@Xa8NI@3UQ88Z%84 zA=(_V>{N&J7+bXZy{dz`NroTZSiqt}4vj6cYHe6fn%_L13t5t+vY)q)+}qYJH8lm9;+606`SL{${r><@Cx9+_(dIUgSDH42(E__9B}?Vh>J zT@GmWb|txvpZAa>7hmPUJ8P`a<$eCVT17Y>nTY-S-6G$6BMv)iXP+Frfe7@{Vla-6 z%Ot$x8F`}lPiq3yFD@}e&k|`QZsfo-0!9OQ=r)&FAX9O7>sy+QbxzVg!O2MW=c3JO zQ>dhvQAo|MJ6+$(uep~t*mLvVx$c=-kb4q~__mtviJYTqI{{B;f*HoD7TaPSG1+XH zLUVmHTb0>aYFzt$`dYe70P?n+g%t?1I*KYlUY7xWQJHuVQYgL?{NG-G-tavy&YDW8 ztmBZKse>y>p6t{41@cg_m5o{Hiu1LT$}Z^lMcpJE)bU(A*nG_I z01mPJ;l9=z3QhB%BA~V4lwQ@3*ZlFJNKfL)k^6L$uwY0n*D7bf6F}4RE%49qyH0Ga zDj%Jt8Qgn$O<0SGcJA?LGo}-I#hvq6%#K=vjw+!k5}{aN>2Q&J#KAtQ`L7hKVgOBL zmr{CS-3TE-5qIobPW?dFpC0X0yu0n_2`(O|iVUThTa)nnuov$e0go0qo7+h7Rv!eL z9*lK5=wO-Xu@z;4Q;_C5I&JL3UcTsTp?NdC?MWVe3hQUx&`OppqT({6alA0Ep~ex&toWk-+BMRRYTYF zb=$+)zCX1wwDchU1Mw! z5|)7!Crh0-VDVLBjCzQR86t%O<*k0=WE1!Mxl5GQT2ugM5bL7`3LpzW)mCL~UwL1_ z+DDd%ke4(2L(_Kgg<{6OC43?00F^rV%YVnx)At|D-%eh)SRDF!SVFnqpHC}4Zszq} z!@KnF{<=Vmic3%y%VUQ(PSWzV0x)Bi%c4Txvf7dgdlcU7IURNl1W_`y-;6FBA6zhr z8HYr>rOtnU_ACKqkhfSezG_M`|3X)G)N?v8UBZ+oHzYw5PXG%hKk8sET)M>b!q`x# zveN3f#WhEHiDYmLc`l26jmUSrz`eJZo7L^3r4ZzWvy{YUv9D)JuKXWWR{{^^_WsAN z5F#XHNtRODgfNp-qJ|>-GD>nITP52tq(W|#5hYBbWEWS+G9yZpqQ#OdGci)uF}4}T z%>Nnp-rw){@6)Hu>z#An^PKZ+-{*VYX6bPAO&G3l}ZV5&(rlXuOco(djf8 z+;GzG2iKndmo9DA!cTIa?1=%WbstC*!2WhVTV>CFr7KvTYV&+1FKW~!WP(@Arap7p z&pWP=g#M#0x45S}j#<4=&~6sgy<4^=4=vJ0(8ukN%WU>eCq=mHT z)t(9h^U!L$7S3{WI>gcO(ytY3igL`nQbd;8d(p`H7qURcr6QoHU4hc zd->M5Ly>mt(roHEYom>&o`z98C_2#dA1Bms@|IAEuXbYQ_x98}o&kKhZzRex^y$t& zoliV0a&Dj4wcT$|SB14AqQ-oe?dxbwC<9^jAexd>G$!j^ldxAuOx=80N3%4M|NeZ` zaW<#P9ziWfR^RL0y*9AUlbM(F)tvX0olsQ9A50>2_hh#!NF?r0s%CxcVr(#Z6kI&m zwi~rn?zrt%*Tg7uG=vX)Ubh1p=&zUdY^3I-v!0!P5-3h7)J@9pX!`~*+M?J z{Am?$EAti0P20E0=Ax1Nu8N%6A1gBi*%i!W(!$9Vyt1^@2vFWp<1Ly}ERz7|Og29IR{djLUpY*ZO>kbB4GaO@~Z ztX11cu-ff9CQopUb;?PwxIdCNo|v!qEy_0EtP%ErcDjK`I9p8(k>FZq;hG{=+^k05 z&d3LBY8@Ys7TRz141c-a(efc`p#7BA{MlQF3wX0IZKD)?FytgZwXLW05!9gKR}WI| zSNPkaGL3Un2TpwV*LYOrmw&_Rds6BoXR7~7-xa@o%}H8vW_*am$CHZv*TkcE*;cDX z_A@~dYny8ukO$0P#%Z3vy8flcy~M1M3>!8g9VWykHk6^+2KMuffLS z+G}^iYxFx?g~UvftZiRE2B#eBuf)yc)IYL$H+pb3_boO$*;<($lDTSk-u_((3zT%* z=gJ8Ce!Z(i95^Y!6)}DPq$@Vn!?LfzXP=k!_%X}R(cRxWcDztni*Quhxj!@$vKJ>m zUiy@;Z6u6g)lj3d32wv2eui)&H6FryG(?zj^RAcn-7aj3+tP;ddU>~lS7hiISHN9R zid#ly6PpbnalMrH;Xd-YC(|KC>4FxmGP~C;m#^j#McU=jG1XNLj{k$dLzcx4dd=Gi zi%1@Wbv?2dy=Dn2Ce~Xnh~_ADj_Qw37eD=AQuXqCl@~W14!bUmYzD@XK;pnskZ*=GX%-u)of{lc%3kD$B)CzAy0^0j_RkO+D?5K z{k`dJ5H27vxuF?5{ygdPEW`s{%gbQryGw)W16}!;OxNydIJ1VQ1^tSDPx92mnU6d7 zJEPak1$aA_e|Hwk!9E=Xg6XM^-Un!?Lcfcpe4wR0Ykq*iIL$N5RBGZ9`>2jW+)Ni+h)D)-K#;YS;c5Y>WLA20MB0vzkJ57GafFopb43S`C z)bWSj10Uug+Mv(WX87J-)ylx(zwNRk0^cK_`qCrn>om4HbNvvUK)WI?W+%C??uwmn z-28li7&CbgXdP6fkuK)V<;?X`mvWj~A+#ISu3J-0rQS~#m-~*De%TO?e2JM3*amgN z_OfzCtb%uNCR7a&q_5%2^~h_^n4Z@d5`W=r*{0z7K`ZV4%APyJC3llwC{d>#HRikt zG37ngzqI?s{_~>Cy1~^afXCD*btvM}POld}Vp&S(zm*hL*^5$Dy!ghitpIoVcAIz% zASJ3zK&5kwCFIMBJU9X&JZ-k>yw>ZNwjIsRedKZ%`i1v;QAfL|3vSzLftLn{dwQ}e zd7z{!0S_iyUV7>J(JgJQ0UH5tZ?waFjpN?=jR?UHuLeBTfAcY--;}5BmH+E|)&0_v zYt_TRjs6vqb*bbgH^fG+tZ~}->wY<)qc1iCKx;sj;slsB(l- z8zpzgqTbj0>;UMQq33D1I(_tAe@|Zx_n5ZW>7JBgZ&7CQc*o?6?(a`JUoM{~Ua{+Y zQMgk7@X?waN9I~Yf3Smg6ERV}3@CvRHqrrFf^Y_5+zxj4;)J5On72)7SM`;@K88mH zKcJm$7$_Qb-!!lHnj2X63^I%2Va7#>f~5)er2GNoM;PBt?5;Z_<-3QOTFs6~EA4NU z>9o_ETP4T7HG1jrDpi2p{Szrp5g{tpGb_g#dGU?eTYft~E|ENssvanG?t6FYh=-wE z89ySiTlCx?j~zO47sx8 z+P5>bS5u@KnFf%=?_w{=o}q8G;;InR?uCC5Bn zf^{(H3YzENbdACL|5y&p4#X$9r&G^#4h^6yYyUrhSz zIIKPfq*QYM7%P~$$CJBjAFbCigdHh7HVZGAN^}J3k>R$hdvC+*>qzx&u&6QtmW_4! zgC6GNv73B8^JL_u^72vd@%c>Oy6iZUcc%m&Z}1rpk+269@3Fge7}>gUEemV!0#b2m z4T5~im1nK`?hHfnhb>E*1@wgP?d8>{p*sJ&&kL=EG160pP0-PMXaR?iZ2!lqbmQ8B=J;>VRb1t`&Qwh&LZ48CLnZpZ}mOZCz6Th40_DYqt(F zX2*1+|)3YgnMOW0lOvn5!>E|n7 z0>`qmO1%wrur9(tDpQA0lwZ@4sSJ^Tb?c|nM-Czb&TG-G zIJVAMkFBg6ObdAWp-i!rFWQK#C_ZQLNwe1ISnlUDgd+sO$dqMszGxxC7olx@qXaZ# zhi#!PZY8uks$?)bU+4I8HJ+`DMEloTbGp@WAt3mGF}%4&R7eV!oKN1loR4RZh5W+n z;@N}h+}PwlT^67kQ#Jif6R23+2HxjKc=ju}qtyaftlTW#mE>)#h<$atqZ+Ns7oEH^`?Q>;SpFE(dnhSm)$V4CLreIA`Wu9|EDc-Qg*he7sf>J7~-AE20 z#g2>6PfFgqi9;#%yoTyny1z7QwYjZl+|fU21EQt~#z`!RD!WLz__N2uRU_;^EiQ!} zhurJmOUa~Fr+=NQULY5RCvh?AEJ^J7{?uxka#UCf?#Je38tx&DGHY?UEs~MGjRm`Y zb|K5G8!Z`_r^R}>^u?RH-!*X-DLBKCSKsu<@Z4Za4RZqRz%otOl2O))taV-f(YHjy zJxX!w)MVKJ5&4iv(eJBEkrq+*?+>RGsS{Pn9bv82;d)tCxC`&q+cB1mR`cA?m}}G_ zlVw_mHKXUlJed%22g&;COJKKES#!2UrYuh2DK5)2)AucN0mm5w(@cBsufOMvULjeU zumZS6){N{(MnnpG;=8793fs)0ad9(c?A*buD3|vw=f?54(*znc9@2wkJzgMF9?(XK z!!B-C`CkKmFVP4}caGsqS8wPj8r=^#XaLSLWg6F7{R&iu;<`-ZIwa$l)E9fTyte$2 zS;4%jYxa(&(tN#hB$d3-4I6cYN9)2&_A{LTfky%7QaRsMJu3f`N+7DUoT^oMwD-Wc zA+VIF<=KSI-K{;ZW}yyJWAgQ260oQ;Y>G!OTJ9l0J$5cEV?75|QdTE56?apqEq$C> zf4Y^y(|1sf13j-E=EOsUfne5H-@ee}f%Sg>{V#$|M+~Q39rx9!v1{<^LBE~{u)oP0 zBtppM>Qgf!8Ad(?b^(ZRGn91(-!xr4h@QkJgIH~s)G>cqce}+B8^-Z?b=ap(6dnk@ci2*E5pJ5#@Gr!Dqqu$5rNh{LmgeEwtZLw=h)Jed13 zt<0+S5EsdrR>!H6l@;$CvyOa)Z9=mA+z41EwC0_{1|5w?k|XBG0cb{tCQDB{@c}e7 zxkQs8?81~=N1d>=nF&};izr9{iU{{<`T4Gh zgU8q8e2~9=Nfk)#gA;qVed6xjrp`=HVINOH5oqSNYpIdW1XNKOVXegL!&!+td#;q+ zPkrLcJEGn?1$!c8`Z&YQqOl>na`Q7mF}K#ZK7F+I)rb@u(x_$%`;9uvwRM(wmsYmA zFHp#JW9!+Rw=;4c04UhI&YN0lP4$f#aNOoO`cGwr9A|&?^+$}(*A0Pv)AU*1H*Z91 z2{|@JTl3}Wk_tJ%qWAGnqrurpj%5neT&H~>X*J3J!i!i$U3q^&g~9^a48trXBHbE2 z2>sTKWKCAwco=n=nV`;fn#7}iejPDcq6JtolJkoBB9u|R^JL}u)d_J=!Tt4;Far&A zsiRV9iy$rKnbqI;n;hdjQ%B93P^Nq>IJ4?R@BNA^<<{wv(b1+rbQFa7cV*vm_&VU|`s5_P5Z}nHvHEqDSIgkS@R3|&tydq08#q+ z>EQ0u3`U%1L7*=H+lb_gmLIm!LO9mHsNXR2yO~=DNmP^%?Bk=Ho<4%i9s~PwjYZt=p(PU+5-?uyv@Qa}E)b+#Chy{mq_25dj z+@HU>exWA_?Bx`;iv?%Qqt52qp$0NC>@F?6YnZk;j(5$q z=6qKt8g0w04i<}Kh~$6$tqU&u7=f*45oK-ZIQI;E2AZ+VyWY8a-OeHklR{jOTcYV& zF_h8yUom;smnHAKdYP$uqrx61jGzvR&22$Mb(tiG_}p_5&ttSbNt)G!((b1;o1fPD zwsHwm9e^Z{F&nSkdC_0XhoC?89ar(${Zj;tQ~xE$9rF#1`sC@t@gEmBe#}fHD-wkL z1jInG1&j1`_2~ywKjNdvJLkz1r`Zil>eJsfiFFHPOn7tTWg~KkCQILU9hyLM10RQG znA==lTgRJ8&@In{S)5q7|H%TGfUh9;QvyL+qZ+Ku;NkRt;jvmfkk=z3%AGA4J=<85 z+D#Ao%Cl%a8exVY{nkJBFYPfp&oGR<+zDPYXj z);rq;lYZs7f-}>Jsa2T`uY_jc|eySv_a%r@^wb(13n1o9`S$6!?A?UzSvZu@J**PC6K9Y>Uh`_ zmYB+q1l8aF^l=9i;Q$r7CL|Z3g8>FL?o{8|&CNucfW`4yUlzBwZd!%BP-!*WQBYXA zYx>ozvd<0ts;Y;C_r*&6p>S8~vS?js9bZaxR+ig2Pn84LLau#i&v^LFOGNT8zv>$O zKLuhCYgE;5Y_K9de&{58bBSp1vy!yT(z>wikJ7>ZE;*;bt35zjQ%ve(*knJ^4f{DN^?8qYU=*VzTb6C^OWtF26+$dgLGVH2?&wt9$Gh zXi3E8WTD?`T5Xpz4e}SmOkR;6k;D?8gc2h#$+mb;QkhiZ$NAUmgE%zhy2W_|J;Sy2 zcu}*(*OuKhZPqQ0Wzt`-9*PZx`E|sZ$LkXH55AwMz8fruz z+A=`9&`k@dTkJxcOD4j%qj{+^i{{3x~^d zL_)81(^{8Af63{wdP$ppy8$}vMB3C=flW(}79O!Kc(GYpQ^W3&W(Bzv>AFcQMFie#tvI@y%6Elw_ zd~K?W$lhM)DCgvWC?)3gVsbw74=vvctv1GRMF{b6t3E1CkM$J#q~+$AvMSYHbIn^U zCgMoQb$sx0u5h)o{B_Zr$M_IkK26C#JBnBlB8cOY_EI@bdxoxbh7BEA6p5#EBU>!q zR)%Fshdk_*X(eshQ=G4epgS(ijJH_&J~|X<5H*zGY!h(@k)F_T#yi1uYB6hUM6AUk z8;d4F@<{^eUFHYoX5&Q3yGn>CatH z?~1l!~6Cdpo>$l+!S5Gd@P$~)%kRJ#KwNXhjeeKl8kXXhafrUrc)4UjEa(pMe`~9 zf~p4W1B2?vinM(vZmh`1`1ZDyoyQUKwjikEkmz2O#;&33jfO7k^0}ikDLYIvH5aOQ zABElVW#il8XDF+RK2@c%MqTk8!pPpZ!*?>+vgeLw%`$YTVMtj;mHarw z{_3xq&lQn8J6y0@<#p?VfRs5ME-Syn8-{~uC=r( zccYrRf%Oeh@7cxN&L22Rti?cZ=da;MExQR_$CNQ0Z6O6Bh;OY=ugwR=cWm257#ps< zgLI!~_{4X_M}qdd?d}lD4oa%#?w0<3dBa&fUq)_6tp+B(Rs>@&Ku@{gZ2~wG zijUxJX8x0RMHd5Pb_fK}US?zTXBloDs50DyKi)Y<1sS5Oij;r!c-@M_S?+R z)CVESQ8aG<~$!hbFGKgmVnP(%F!U$rj2a# zt?1G-gqu&yO8g3oumn}Ff_^G=P)3*uLbXU+1v?Zv0kim~g?wUkG6sH=qtkYJ^=n{4 z6XWq??R_g=PEjd(1$>uZB_+1j!t9ZI&@VRIh;WOjRE^+Y#EtNVrg7y>imA@IYvF(& zg6WxyI>?E7!b!eBk%6d5cH(H;@J71bFH?oi+>Kig`WO49RvmPXptFcE+#T_IJpd6T_soVsdv6?Kq78H$Fp2 zz}-1*Bvr3>DFb_eemXKReV2gl3ym&`bqEC|f)E^cnu@H^)fIA=be%tYu}b~|8rd(h zIP!)h$=8E*be`N7tt^6kB01HT7_BV4g$}n61=xc0zu-%RHT5~x?&iPPSf6g%*JWxW z7VM@OQm14=n`F(eJOIrIIpMA6&wh@k=beFb*^G=dUgI`f33K%g3 zyr-FKvx(w)M@o}~mQii`n$xsV?To=OL2>hbKbxLqX4Jwc+GB$w*-x)}zV-Kr$in4< z;6gqGzPDOF;YxPt1ysNS<8#09TX_H3t_+ccE8(ajcwXCtE4$sP&0l;Z5vaBGd2q!H z4E_{c=!w=B&>hE*PAF@%PufN7Pc(#CP1}(`r|^BsS;sA#WeOk`-m3kfRgeV}B-1H?D5O&Pcb^bP zC};}1ud8dzD_vx4Js00`pxjiD;}HFn{pwm_`X)}gbD>Nmd%g4&LE|;Yj>+}OO}G9T ze2l)&4jfI;eBYim7zc8OY&YrV(x%e^8@lr*2D_+!RF~|pEuN<=L`ios_pAG=6ULo@J~#M@{Cr6$?ez>>aAUhr095qb)gio|pYuBc@(;L(`-1zfZvHU)cPJ zN?@X>=%8^`iB!yMw{thoQgn~+>`ag`D71?$;)AzN|55I|Cp24houXoDcwg(ISgd^o zj`FUoEsS-bJiRBqv)$c&ekRCc`*P@&yI|P!83%J~z9m89@b`OL$D3{3W1XJs5cD;# zHFc^AG)hje^wn6#+62vQzPu9|zht>DI|v{SBz&SuQ1__quQ_6ZcpRH!S}=LcV58Ed zTf$|u4w$c81H_@Rm%|euBOogZR-@wtYO*7-db$)u2kBaSpnR!IQ9m3TwMDJUVS|#=*6T6*TDCXMcA6nB#Gm@% zMO}YO_^JEcOe6$Ka^=Tva6oWvz0K9pZq&dJo>4aA=b2oa1$x57@Yfb1^=+pT5K|eovlg;51ISevzktLSXRC^6&k#E zM0S;}EJpjO{URO~0Xm*LFB>RCvWh=$|!F zF#?D@|H50$2|lAE@CK33Z2>mA+iOEEk2&-Nl9--4A)6&?WP_knAjYgECKYGD|7gcntzwk-dD~Jj@o*8{%+8zwa zH82$SBu|X{UTzz;;H?9bt4EZ~`pJu1H<7l#a1N|0`MDgsF6hH&yi%UruS56x0!O=d z2s`wBDDb;p!;u16MwA@XUVdPZRwFX89yaA68?zfC?u&BEMyD5BL8QZxHjlztrxs|Z zt=3H!EGcyk!k@M(<&waw{z*Cjv5!>zhD*v`?{T=A; z^F)JkjmZJ9c5z_Qn)nd0!>6eOEqwQ8uL&^imUjG6G#DWsD!(G_-|*QSr+g6Av;15m z074{Y`CpA16f{n-G=1q;<1g&;NZnH2y0j7tFCtccB`EM&A$g~=91Qy6rslF^Yzq@*SsOzP*>IKz#cvLzBo^Kwik9!n(6|-d){H~i?fCsve z;=?#b=uZ!k*{E986JZKd%a*BA^_QEd@$cawcnw#*y9L*f&r22~ye(Elz2o4k5oiPr4^;iyu{sdltlHPc^t zURd_Qqo(`UloB1hkOWL*z^0v+A&Mn`oL;IAd zQrAnb&D{F>`l5g&?b;pDbylb2giUU#1Xm|3d*KElqt=g?Iju}CJJCB_%?MvNbMJc* zq-*OwNd4gY_BJbj$Zk9io+YL3BrK-RP0yE<{xmzMG8Sf};jnK(=}!m}PZK)NUxet< z3E$dcIf}F{#Q0Q9;4|jJzGPfNP8oIQEuAD9TMw519WNqSPu88=mLM6}sO%b2s99{g zh@LDV6Mw~K)cZptaQ6#clV7F+1~T$W|FA)k|5SCbKjjdCXqDb0ED_tOUt7GTqt@vLJ3MR% zlmGU33(a>3eXdq32HhXAcCXTV}1DiMZ=o|ta4RjaJGVb_s zFvxYTUP*ei?ashZV?hHOYQ#3~?D60CEwoghAou90#ZzP71aDPCGPNV z{b&r8om9(}rcWDEa_q-+iDB(}EaeIfBc$w@u%?`3S|nAXCGJdzn&#*EPr0N`vlg~$ zl+eZ)gEeElqo?paG5UO{X`XO8Y!?MORG%#_ez{XjCd}r1D#)l$(=+@$+(%r)){jK(pfw@aZ0A-~_N`pXTzk%ftbADHOcG*gq zZJAtsO5ed!MV%^0<_nwlk@%&VxZT8EQagmLM}v2r4Lmh=RF|S@f3^3WJI66Mz3hT= z$lc`g%F3$t?uz+a5ar)~jW|>!TaN_qk`WMq)`h!VW`jHOrA9^Ozw8Q{qHPL7L<1n? z*iDOs5d{cE2{v~Zt{iUE$0CCo!;&d)8M8+?ugj~p6OSwPg(CN~l&3E+7I30)S3|>T zytQFm2G*rJ@2s!gpeYu)j6L_uS9fxh(lS0<_4H~-*iaKf`}Px^+vn0n(G4$K^|@N~ zju?#g?bmoJU`FfcGNi>t=1*k-jxIH;JJ0_#9<>Im++cEX@fgyYQ?a^WMc6y25eZ$R z;Uj>;8r^+4xl1c$T%4mLhznEMNK>$PrhYZ^n z%9ZS&Oi^=0A$VNJ3Cjh`xj?$#I zOwN4d!cJ!Z7M$_nnHktT5R)_2yu@PQi3TN0kJYq=!iIP&WOa;-=h2+tNTmiGsh*BEaORivLe_q6_kN1y@4L4uWSIp&O^Y)zu<^qS_(_9O42bVsH`DyNly z`Xb_3$0vV{nDr)`SLi3pG;w`N&ArWpY?Bpjn3;sLd}eog_yAUH=cB7qS4hj3m+@Hi z_nF}Qr6si8Fgvb72dBV1H}vgTI;L>Og_OSGXwcUyyP+8dDsueceJga>6G&@}v}{Ot*u(C_;@-v~Ei}uU?X*ceQ-_=-)$|1{nNr`G)Xg zdU7+c%JlmXU63-)=mVjNbjDil=xJmAdhyT*N&f|I@oVnKWffS>trZ%$7b5!09Yu8F z>g-5RM@TLaftB2l4V-F?;71v*{O)}9PvMqHJ0@jyVuYAVRPXS>O3LY*Tv$KPGP z__?KU%K+~dUV6E!KE-i9gdocAFY|+Qr@uRa#C47$-Xl^}t@w=*Nyb4gida?%^2iM# z&3KtRWe5kzcBF$NdUXNZbhwV=FHMK`VU1jBPo7xj+QKQS_%-{}8y`lX>ByeVl{ z)!};$%)NW0g4a2I;6y^v=WwPvYT(z8bj6jvE$|L~;bkFPkT)zPJ|+&H6eUs*B72lS z9ecG<10%pr+|oaxi_q=3(g)99szFR}MA!5U3fJrGg9Opv0gsbpQa}dN5WGEJEtXM4 zIMwi-GK4NfFlDf?b2NxT%vO_{-Vgy@SfBzBH2bx(P)w1zF^=dJ2^EP`k_JygHt0U&oTzTf2#aHc)co8or zP9=5#D*n@&y+|MQYTCA#c3o6rN;-zKSxu!zxcKtk-8B}1!XfdWsM5m1PhV=o4}wA1 zYiXjA?tD{V$#5`NHF93Yd@tew(n@11^CRlL`fd%&?u?EYtR~P84 ziGiNz<%;|cFJ&mPiPw#*Ti7HvBpK{ll8laD#XZ_ zT<`~T^<`RVM2XPvCLChOY*o`Z7^Vu1;A5y`*k^NoB=g`L4a!};+KcEyc_qZ|Xe;zC zmL#B)@-sPI-iQtrt3$P$9+3!$0GPiBY{eIuVls-Hp(KKw-O@#~@1}Lg6jh~l=e675 zoiwLAGBW?@r2R5^PF|F;Jxt8ky1muc#`>`a*E3fG!1+0oVlw8#DB0}qi?&W_lwK&* z4#sBmxAXiItx>N)^Aw(I=zDp6=xL<2d!q7^m=ael4|k@v(+vG%PNkmC`3#97e$45wJT~(1VCZ z08tI8S1L5}ry<0Xr#e(>pghoHYdUFYYDA?5W{vSEh>@V@!{{isFo^-1(Fhf_FzS`r zFowT;rV$8>=TZt*<|&DO?$j1bl zJtqrL)4`^7n-tZB&GOZ2_%c{wGx!p62)LLxaIv_}K>#C$9dqlXo$aP=y8VQCaj|f! zLIZPOk99HZ^KNe=r|GNc#(lmFO09$5^Mf-n%-9x{bnlS`ajJHU$mno>cFzf8e_oJ7 z^%DpZuU#wVFV)1g^H>uq&Xl4zvBR@OWu_DXrDHV~yjwh$c;pZrNsUr72)!RJMN-=% z=#d6h{IO-tf})1{D~0K0aBkL}2?{Q&Z);fZTSx2xwSve7_WB^T(MXa&%giT{ie${w zEff2!1^b^R2-)50k4VYW{H20PY*Y@#_~ZDoh+hVOTFNg-I6A@Mpc14L@jdpmnc0l2HeovC7EuNU(fiK&6`?Y7$EAUv_bRX(S2;5G2PL5n{1oP!N zc?Ko`g@6iY%oDAJ{>rg!)<^#6!Q0Q9+E*R?i4t!7B_3QZgpD}RVR7y@=i?Ktm;FVr z+A>_`)LJi`mVGp3H{gYCm(e_Kr^iC^VcN3|~Nd)(Z_dcQH$^;AJ2J&cE_07!K8L(a?8mKZ6g{xfJ3RW}97SB*Y9vD2VO`oQ*eq zi~>?bOYxz8Rk<}RWw7jAIi@!&oCx?A3FyWF~I z=NG05HHhn(_Cw!VvwRrd(YO=}gjeZ$VfPJ$tI?UB9KTGz`T1%o!&Xly7y(&iTe}|W z1e&8nPmZ7cx)?L^L@TYoXsk*)#5Cgku#3NOLL_R>25&V=zrD-+_0kWT1rk(m&=}jr zCsRS_QYp=g`+XUa-Vg@^YQn9R?;6Qq^HG!APvIYtI-K!ir_r3CZrUf{po~IoJx8Oc z{D>XCY#Xwr(G3nnLpOG1oRRclh{SNOzRh5Vt)ibkH_e6wV+OFg$8ZI zT=%DzHp}ADs-&Qy8y}t2=7`4|oay4hbng061)bnNY3b6jQIkd+#^B2-wkXz*U@^h>COg#^Qm$}@OOLUrh4vCUX>#6+Ns;?#OO$HiCC7kfn zvbYKNGwHqz^I1pI2S1;R55s~)@F-xuJz29(K8$J@{MOaM`^%U;FU(*E4H=B-%xn~{ zE+8+0RgIfE3d5|n?xIa?^tr4L!kIb>p{`NOi(#;|({P8#)X}Vn&2?f|?Y*2JA~Se+ z<{$jE*un|_Md)jSjEk~h_8Q|I)!tG?POz98l1{}rSgsnJU5#7Sv}(j%HSL9?#A{58 z73)(ex+B5e(UA@p@y^SQ7ylF$L5dqoFtw;#6Yj^#C&-uUm*d~aAQ4xMU*^Sxn*C(S0{HqL^te3>|7Y+8B$=F%${WZkILph7gsvR9 zAyQ-qXJVIg_e#t5tJv3m6G<{Qb@8b>t0rzBd~&^NQ*Zx;-E7@?=ZBG4g5yOme7M4) zs*(fYEIxoLJ|3$u*I#B{%}ur*9Z8>kb&Cr~kbm>6HlX*h0Sb)@K z>9Zt2G!9BHl?fw?*PngugNRmUTJG!u$WU2CBc6o2^5_FaQl?1!#3}%gHPPFpLU=my z+m~d&5YFROOb(m%w(9DKvuHb)mmgnh#IqE zg$V?rz{~2UaKHwI;+Hf1u=E?gigTw=Niv*rx6mq&ZRVif4eAz{L}DL&+a>*j>+^?o zmE8~Sn&q0m2c&NCD*k_mlvu2Oy&gzao?{UANpnDkXZkL1I4Wh5Gs(C2i0~a3D3QtG zsv?c|8)Wr~YsSV7hq+k{OpbIxiLTnvu*JLK1r)f`-%2S*)O6lPx}V2vAtR#T4;sW3s}VJn#G!R!j1+t zB?AE+ghO;KJ1j+E-R=zTF`GptAQ9B{Ryrs)U{~ZC*rZRy&VvvL0Tw>rLe9SUq9FU_M!n!{Sn{28#+lp|j6Yg>q%QG9W+PJ|F;}d6@7@wl+1{A-EGs+l5 z>CXcM;->24f6k5qg3Wure-G?}k^fo;P?e(e0w!mj1kzGaq$hz7vD~t~IpzDs_=EdH zZywaC5p@-q(mZ^l3xNQf@744J(fNQ2l9-RkD4Ck<73@s~##g>|5@71=5Y4@9-ij*` zdzQoWK6u|!KwHeq4{ z`YtU*z@>krneKRB){yZ&jvS+ejipRjQBj>U+Aw z{~g#>Q>ZKcJHr<8b{2wsV0Y3J>|#-ZuA2O@n@9(w75iI1J?^})wZ(^oKXNGWp5q>- zDZqiQoT?j3gx48q({) zf2=Eg89erh$`>f8lni3?NmO%KyG4yZ*7FD*hpevczc9k3jHOw3qz#pl-K_*2|# z3sbG*BSyW`l5dBCqw~@fVk_2itI6pp+swAygpV4>N9hu#;>2kV- zTL_Sr`k*){QS-0?%Bn@Tmaj9+@}tOpmmu%;=(_}760G4R(mdt zxO7@XI9;)C`yPeI8x{Anb*pTlc9NOnzOx3r#zw_@ad95MzzE216H=<&`x7JjS6tdT z?h*_`p0gNez@~&FNRhp5@>d?UQIap{>h}Bn+u6laP55Tzx#*!JOW`BYqJ=^Le3+iyC#0<&yKGxUw27hGu1E+D3Hi|ZRt3e>SCe-Y5alOKK6sDFHDE=+RF!lmAd!Q=hAV-T zR+z3!^Rn%o)&&>-pB{wY#@GFKh>^wWui0@te#ZUSbZ8W+;DM4b9N*wE=vygMm7hCX z`w<)kxjwr{_(a3+k+|O6kodSB_h;xpf$fDPQRHecE=q=U3*d- zQT|`|5Hs{Y7G%E8lN#*;b&O|F+|e&{c-5A7jr_^ORFF^exr2oNEfHS9bdL&k@65wm z5czUsy&|m=5C0-g`HlAu8-=+=)OMC`K^_sO)n=Mt4@4~RD{tWtel-8rQmaeA?vsDb zwt4~Ke#>?exXqm~iE&upnn_CkZ82p+^_uJFI9BGI%qE&mEL#B-M&P@IFs8B zgIZi>A~i)=XFxWlNS78Bf(iAH54^#Kv!sGJ-=9u=9PVu%g*1r}Fvs{^Ke#QT_Fo|@ zo`FKkzaMN+z>DE-krwY)yB=Fq3#=Y1_vv?T8db-xyrG_Gu_Wa;bGr`U`_8y`lt1p= z)Y{u@RQ-E+oV0F_I#m?>^dmq+G8I1A&eM0)+6f>spa42c`PTN&36fB^zx+QQf2nJa z^jO*9*gk+)=KBvYLPXAce6ovu+N~8&rT)SGz0X2W#M|2MYb|;`U$bgRR;QlV@Hl*h zvW=h9N4l^ubqDBa{0ps0LtCpXN1+T7Fh>tlV^YMqKz-4SZc||Ya~Q3N7pCE^FFcd8w)5l~WCO8>siELP|RKm9kIt2A%f^pzwlt)SElaL**teZ46s zcVf5>8%pI~)tv^~WVfOQ|B4LH>hGxisJ|4})n>lu-xGx`Qk;Rm`aj*-{XxHbaDUC3 zV%kf~8zNkd-SIzgpq)U#JUR2DNVsD?)OUUc-x~0;>DkP;OmbhC*$L-&x4SnU6X*NZ zP64XX_oBxD3O+Qc8yj|Dj4Q!Z|5vCsJN`#QEmoeWzvk8**&T?7cw)2TdqOn?_1f2C z)8kK3#ieEIzkicsTy_vo3m<(T$_;=@ot_#KSNXZEr?O-E&KnZK0;2A%pko)TfeZSe zLv}UNUtJzHZU3(y+Fenh()BS-Py4rQeH~lGT83d2iyYEy=i?SMgm7G0pn_szqMf|3-(e zN>N?J4%c)o!sfOb@?FP`%{3#K7p zX+>3f3e(oOa(rRd=W)m0ax3vQfp?QT{mnp0W+r+-(R?99*z$l(!BnLGCqz8(|N5RR zKAQy1N z4S#&1_UeE4V5H?135GnJU#QEe1DyB%X<6W+?2q7!Otlb7dLhEBH;V+%paRufl~xhK ze*SY~v>5v|^I@)u(CCGr&T6?b;ZYRdF3oeIaqZ_`it94XW+pb;$yrus=e1FlLs!sp zb^o5v`45*JE*^5X5Dp-CqwCE1Z2Hf_Jy@#wJVIQnSJz$^ACU@J%PKeEo=;yLJ{V#M zzNSpV6A_l}d$0)C2|@g$j+pK`xw5+*Ql9i+^@8wMqdj-q&j@`m5t>-5_-^s20gWv{ z#Fu~S?{7kp5B>zmb%ITz;Rl?m0i;pRGUJ zoi)!0oXeL&5!co`{;xf@lF=lWINZi+V>ReSux?2g;P+ike^W!Vy0Py^RrrNM#sNH<`M|Ln?X zR7e`hJA?~jUl(t1ldNWbE`&HYRt5}!k2pJX>F*TyEuR7$oH8P4AuGjqY*K*}k+0Rg z$?igqPDQBP@$)$_fcr5pF(`_qjd!)Kif5CWT7u&vNz~zKx)W*_MDNplqn8(jdLK*()K98hIPHnxlNLxm)J%}gjPxWjD#FIt!B zG&3x7fVYx)53m4*RT}!- z+-u;DRu8WZPl;}@!vjfk_E>npn^eBJjKiW+Cu&$_$EPpRsv-H-%&(U0sO3Ln^(?M_ zu>PxWqS~_E%HlKlKmCH5}D$WWb^4sg@uXpGlQFc1*f|V9K&E< z1nK@oVH!^^f2`{FQp(_PPq7dxTVbUP=*5!?PrFD0oQeDbBIt_pBeZQ$y`+Mk zFNb4kD%Yurw!+?$!jBN`I&0I%q9hStDj*U52b4lLGtr5*x}feF7N97lko`h#2*0G3@l{MP++?fISStc@s<-Um%#Zxs^M`u&%xQQ ziBv+Fv2GO@;M%yU1&BT6h-bkLJ`)f0QCgThHZz${c^j5uJgUuc(ts($qxJJOH1g z7J##rUrHjK4Nl@bm&(UL9A5(AVarqr{*RGKruM8r|GiXEi@-1kN>+hcZo$Z2xl67NHjT(vH>Ga`BytZXqW z@Fj^_J2X7rv%k{HfAy_ytDOY^&2MJ>(c3M94%$_>L$o92g;@u=TsHW702gMswJOC?Y@y=z4aRq5rQ81N@X8x=e$lOmBYF2lt&R{DKG10)JUN7f@n%8R zwY9S$itMe=&844;K#>#|Y9Ke#wkC;SbOph)e?LzT-evp3Onnp<{uaA%{zZ#ZV6WGk z3losBHAXkkCDBp|>%zjnf@^g`!9Zhoz#A8e<#6INhPVS?s}k>QhWb3?+|0ycNfvTS z^Z<6VZGmy<%=Uj_!Y}UsXQ0fCGI&ei+_iPPDD683Ccy)aoo#F9v)>#UZVGdJ3E=`d zv|MlhS>Zh;K!9!j!ki}4pdY{>-uM7st&x11L$$u>|vnq;4#tc zH)*8ta~M5}Ji$y_*de$qVbKrk&ybl`#r!+$zF04Z$$vJZ(F5IzdqPJj2VB#Cd#hYD zpE_`$cIs0$poJ3PDd0E-0du>?FFf!21_>x@MRWJLb-o~3^spC~YHW@}NrOCLI{-{) zG31W~!rm+F$ZrmR)}WDTg7Tri!Sj%-4A+8zBvHCm>0Q`C%C?-nvNGS~Be-R57&aV6 zGFMM3z=S5Dl z87c%V+5U4o)pAmXdz#)HfYV)6L-KmCVyZ)+j&S$WI0V&(L-FtQ`mJ2P$CXE-__WNGx#i2thww zW7<=>Aj=Z0wJ@{i%pJu=t@L+q-{-kbpE6n#aO z>ZS{*vv$NQQ0vIG-C#d4NsFmxD#Y`E`~8xy_L0tpY8~C`!E>%Kfgek{kR(=SU_ccA zG^ByawOyr@NYTlMUqu-IwiLQq>;cctcBWDG`lDR1xx6hmLEXa@|*Ltm!wF6 zhkr}Y1p@3Xqy2F&E7@Of63T#8dmKmpG-CZJSiLU^VT>*P_+4K92(&k*a)mE6!o95Q zp{!Q;6&wyY-n}@86f3!qnBPo{Y-kH`NDM%!q%|zE;-2tcNQ*_Vo!{iS^fe1242v)ye8mz%C{fDa# z87;?+ekLc22>m<~$!-AzRbbg$+SVPV=ojozv5f7|XxL9I{rk zWh9I^mv0&!Nu)vD-ShWv_FQ3$hV;H-%-%iu*!}YDdTv#HUF4v%FqxiwIJ%H@9sBn@ z5M?}pHm?6$89$SyP&xaqZ~*ML2`$FV$v%Ttz1O(yW&>>lfS$MbSC~V=NN7bHbMY)o z8UQiGcQ=V-KhiCE>vF@8VT%|ceP6)E;sZ?*Q1krXl|FkLQ})k*njBDQEI)XK*CJ#+?Oc#` zO>IFm@w9I&yHOtXWmlTHupF3kcZ0+9O+;Y!n{%PCAx8qX-uC-U70o5Ntvt6wBbJLL+$x*52Xh`P1}rH$?jA8`0}iK{Npq0UaqTt z`9O@P)SX9UrAcJk&ky;Vvlghc#jWYr34_PTS*6b2nX@Cl%||bB#~3LS3BO46jJ@vvmCCw z>l(5Qgosb?qlYHC*d_Aw+wlJEX}1n<(ExL9fBvx69o}df4XH3lG9l&&uua7w7Z?@F zF-y&P>@l@iCe?Rzymw6=2{$m?GIbeT?}xm(>IG3m_OY2UI4$cxuV9;s>2rz{&(!@( zMtN{8-`ERz0Q6fba)!l4C5ETVLYA(9wlz|STT14hNs<>gU*r%sUrO|2+FF3|Os}k< zM#*#NOY-0IJ57@OlERPNbg`& zD5|$@B=XYO!#~g2%z`0*F6v3S5pc9kuW}0u9k{8sD_}rp6?kr_D9r1Gm|yUIsShj?Onfj z%TBSh&F};};CR#|fv>k)h_}_ru<)?ic44v8lp}UAo3#vryhPvN0w;g~vggrExDX;2J-(p2IQZYrYMEH{nAW)U5uV+hn=rUf-q# z10rOF*xBgQ6`M4CjL(Y!4jZ$YvJSy##ibII!@}LGc7+^KV7i?@JY2TTe+ruj1fm?2 zRo3+6&Cy=}q;07a5z!&+9q4&Iu7r+H!1mlRu`m>l93 z=%DQ6<$I0=C+h~_u4%I2>1UEYWmQxH)AQX|tmknfp^3KYq`=jd0F(n3{gF_nFT}dz z@$U7L^Z)f$oc5dJR~4yS`GoBb@Y%rj-9ihm{^o|1rf)CXyWEM8$9<(u1m_Ua$57ch zQk7LvEVI>8Y3S^xC_DCsSI%^uL z`Io4mG~IYRW!IkzrA{0GAKK^&Z@P6j4z10HTPgqUxK>3)py{K=Lu35Y5EdALH9DpJ zVrt<`l|v*PGoHnyg1mj%m&VqS!=VCsDz_LC<9BpRs>^g@ON)kkr_XHjXKqlv8wViG zpW&E^E{nWU+YZ=8!V1|8=h`;n9Z62&eMy0wLsta7i7j@iN4BZ@sP54CFJGItexT)o z{k|Rvw2X{WSoqyrWsw$Oj+_DmHu`%9@>908h)lLk{W7{a(!LfcGnfVJbGaLDp1?`-H7una5@vj`L9Ho{gs z*evP~p^1lF1Hh@-Zl#TSd_V3lYVt*G**-SQ8~wUM#1$ZLPpx8J0M~|#d9%ffg`}Br zQc9KVaF2KFUWyW29PHyec8q}!eHAa@-~e>7^ja&^>A{{V=t>T+lWSRVjT-=cGoSe} zG}=AoTjziy!#00L$w~Q#LHR6y_9xOBXghNt(>PMh+rkxIOL5u^iSU6`D8|pKi17$x zyCe7Aj`!gPZ%+NVe!!b3c|!VZQ)TG1xs|z@yZ@XjdKAc6b(h9aAt0V23B&=)*MHt) z$+82tQD!{^#83eVDJS+O;#FsF0UL0Z0lOcNTF1FKZ5=Ke!Rz<~TDJhY1U{8_h}X<; z|7g#3K7{eJ&W`#Oi$7Yty?SsJcm;PQyWDd~rX0P#Z%_Zr=6;!2cG#G?-}CSiwpq^^ z1{p{*ISar59|1%_u248RQM^7;h08z;0tUWM9F8I~c?OS(_ZZAJc-o6LW%^eZ;_@PG zc_ng5I8cpyW}N5$z{V95XOgV2z}P=CImA`U+@Z#AcTKX-eUpFrpKW#b*75{P{4?;C zjjk}$b7<=obbRhW)Nnv(MXTN@Zl}(ML=`@;iOOF51mOg}PoGx^gEMKu5st)-ZvyQe z!Mb+9m0OPV3(hTiLd;!y!YM0sw111;)8<+@grZNQ^1z-u{oB!Z=R+_^1=4SOh2MvO z>+eG2LQPjzR9w}`5_?kN0*K1R-EBMRn-dMf!Gaz?5AlIuQho0Zv{C|=m-`0oOlYH^ zf7R`z{FAtHW&b(*nF$B`*7~l~K~J~>lEph~_knkH7V)m?>p!pkzCCHN%k%7?D;fp9 z6GhnQzklMND0y)bB&AArar3PSO{WN`7dq!u>>fIMfqDy(c(~EJ)+ZJ)B|xBtpby|C z+&HiY7rfy6PtJ@TY^%jJ&NKEhEzXI8Q`Kl=Bg!U;?`F4+b~{c!s3GX>$&i;`7CTP! zE#JzOTXO)^v49%nq+z@iK7cf`~Fb*Q1_%~AC3brWkZL-M`3GK`N@ zQE~LhwL*iZksgOB zHQ9Lpt%vciPI^b>Pwglz8Sd3?duA~tGH*H!$+4{buC}8D-sQGLT+Ay?)Px>L9XaWQAg$u?>V zFyF!hJ`J|4wXZh4F3E&y*x%PrCM+YqCC6MK@pEUbJB zEt4PR?f60|l_p}98R8JTa2`1W;3c4=Ye?Ma+oOfXqK zVi6)&q^R`wPh-k5!{#x$WN3hZ!>1n(X3QJnl)Le%5U+%=WzZ{268S|wiGwCZGzW(w zB_!q0a1o>`q=>5v6R4cTJK*$u9PNcd@c2$@WHga|ab`k0bP5*0R?>yXSHu5#@bgK_ zyf2d^U3+!Np#O(n#QehT(-DiFD16h zGB%;-ZP)F&auA+vjO41EL2#2(JC|(Oi|7V6LVI}Bjo~ptlhr_UsVJS>E7vsJq1z@I zjw_97N50nC*G4z-3A%nI&D467V;&j&h`qTaQNIs==Xd_m^0CI=1WCJLfb878~RQD=tiLQ>z<15M+%7rgLBa%*oH} z_4q@@U#V25(f}>eL!I|P^|AYZT*b!jPMA&u#cZIjM}Wa9GC;fF6eDE7sYL zN$Q9k604{feo#GL5Y>4VLKt9Mb+kQGj|R3?U5b`@q1WyDq!eQ(*tm6o**cUVlRp1DI%w7dB!@76KSEn*0zlxEegLqzt%f-gfFBjOQK5T!*MORIPSd7lL zlG|Rj^&Nz0T^plS*%II(uq{MD0~AHsYvWoEE>13K4V+Dl{&PZbBVXqhk1R_tWP&cy zUyEDtBG4|9pQ{-GVXrca3_#gA)CJtM?U2Ibp zbaI^AxpEs0V7cbolmYdxwXXJnQ`VEw&u6L{lG5TV0t2uRFR1-;q#XU{#yS80`HgEu z`&{K0G!Lyf=nImlS6#lTSvutcA>lf|unAC7^8lUG0DyRRol(IxWiMC%zz@kEROuaM%O*jhOkeF7ucd2)%*SoZb+j4sqh~wlzi%FU<++M4WbjE zRDS9efXGq;PMi1)0yu*F^JI=sT!T@l9vy)A`Sz+p)+P;sXW5(EDsfO0S35Tgvuk2w z1CjsAC#=t4(I1sERRFJ84?%Lj1E0=cQmIh^cG+Rt89xJYtQ7G+zd)D1vWCx9lk-Gr z2=OIjIMB6MBSz-@c%zMAq+;9aOs9eBN=xu)ttUjd#C0=ex$$L-=mmX9SR~m3%veg}Ai7bMVQh^36 z2rP9_pTB>}2eKS=wg#F>R^**M28X}`!(hh0CG^j%D}69IZJjc z@9=rpx}^}3Oat{D6!Y{qr-&VP*^R5XAmea@pW6h0UtgLEF&;A9=+Ji(s-qWTirN9^ zAh|h`Y?LFWRZwx0BddY36k8e~-g*JS!QEF?`DJ|`{VERJ?w$S&P1+$=;HHJejaFR$ zR>V_A&tC&-7Tf`*Wdwn1Ke<+{0ccbKtz@MfcC|x>U+B#@O-rqb_C)J&QvknDD2xWj zo1CX#3<};RCnfo-&dB;WXR*QK;4M)6QoAO^KR3>{hU_B773>978#nRLL@k{_2*#BH zL;4Dd)U`0{U`OZXD9KHxZeuCY{oBo`e*7=>mZD!+m}5n!J32Ff(LAr&f9sqN9aDfy+)@M%y1Q1=nCOi@U zUDsFTtf(!3OBv#ooHHjyrtZX_M@iNYbd7|5Y6^Z!qFT+&97SK+h&{JS!Zt6crW$JSr;<==Nf}*$6y) zd1mrH=>6`JZUyk}Q6X|3!W&+Y5y`N9v`b`LIQC$|1Sw2DZ-({pd2LiqrCh^>ns1NToo!x@Bl|T}ga*2e;QLgcK&`BKbJ) z41FWSN5{3(0;hUgE!A1~ z8~raDV5YwuPSiVI!QPqpIC%BC3|85S(ZW+Xjr+MESHDV9aZlJ+4=FDCumvm)X9mn?M%UU&JV@D&vQr2qK>F@q9hs4E4`dAfw{4SIhnvfO zuB>1iYn`qLuc#0P_w8om&rzv>YtG)nN$X*&%#|L|s@Sb39b42*orS12U9QYrJB`rw zsTQUx-udSn#m=5dH2`wj0C&M$!YS2~48Li_-M;w>OQWq5@vB{~N| zo4@4l4rJ+4Z z0hz;wasi>OP*}7TT?yKf#GWK@C0_5gy8@MUM%+Auq1)#?Z}E%Yg8G1WN3ouzz)&IC zd`t?QqrBP=$&R`tTxuvJcg0#nP!E!~*E#NF>)h9qt|n*@ttgWAfV4C z;B^dKiZ&qvyJ(XKY&dWWaj~wTtVX!--XfM{EWcx`hMQwrpjjVk0c#y5%Lr zSshO|bd9wkrO#we+lqXQP4_8d77^;9X~>Jy#Ua^R2F6(&*&uZyn}qj#i!B%T8IpIN zq(VWob$xu1RZO=?$!O40%`+7w@*g=GTW8f+aN!2qJ8x%M#Eei(p+sDwJ|2cYUrhiv zQc4X}Jn1VGpf;8_ZgOtaYfLjMd0;K}UC0)2_6I`0QceJqWem0t<4~)0I6}XkO#mx^ z;}WFsz&o;5_OOpXz8M~nyw{03pMa$P+R~Nt;_4f3`C%}h2sZ8YVDK8ht|@kyQ=s`z z`d-LyX40f?ECwVlU_iU>!qQ!nMVX?J88vLHRsWg#HG5o{p1m*!GClCJ`}flM1<)>} zslyOg)F;Cb>p58az6Yl4&I;5UvNL9ZCKAKYYqB9>IWMj6A^WwGi% zY9Q?kx~Wenhp%L%&pY_5*NIrs?4~~3)rJ#l&SvT$5X>nT_!vv}sJ6`q)fj!y;Yh;I ziGpYi2&_NAYaUdQ3s_ITr_V|&1(~KpC2fnBXp0~N)EM7r+}tM~QVa@DA#S`$e(-q^ zl1T)S-|G01j-|i$=3xgx2ZKjvj9#8rqU$^v(^kABuO=IZ05wplnZ5FK1(Gg>O2sVk zV%~9-L#;f@O!0NL@PaUUT%QDwWYZ3fgF+k+YRgRd*A%hrPV1dTFK^_m?V&&N*h za-OW9#5m*UzDvKXaR&`UX?ZIiR@R1Vf?G}68dNYCv zs2*tQt#kSm-clLLj&7~-`-u(iTnJG|xk1;A|MJrLEMr8|oBEi>tfE;*I2RSK1n z1MUm;D7l2}JHQX85m_C>bEWkY&z~J>M&j)Q+%kkDU8X)|U)1ga!MUl-v`DCzozcAy zDRPFL96--I{HNE_OlYSmm3b-My93O1V|B|l=&fhKB&O<(ib-PvZd;lz5bR~E_JzEu zEb};6*07~^EloS><1Ruk42v3S%VBfWWpur6NPGe>3;k+swIZ}53FKrPr$wgUEKTM+ z9CMUXz}3yEGYM~323eY;E|!YAl=uKVJ+sO$=g}omy7QdI9J)SB&d%86oNk#EqwW#Y zb4>^v#XNju6=r61n4`JRU}nrh{L$sE8`oj!+;+4m?c>w`=tJ?_Nk3ZklsuuxxW7@i7NI!try5X!#WVTZP!}82np%<6&Os$+eV`D8tqJK#NUn#W*P!8wZk6 zcE*JJk{2g)6f{x#0O}+qA*`NO@cDZnhYb^T#4%m2@C`KoEk@& zOUA4V&3&M>pnMa7k%qIO{&Q4Zp5kJ^kG8prugzQh`c)v#t%d9Xh~G1f<3s&8TS6JjsCb|l_L6K|GVZa8 zES`;GbNv!i-OFu8g!b3xhaGbKiEDBDNl_7!lE^e*?Rh z3g#=)Cwpjv(`C^4C&LLLxAgkHJS_P>DTZs`F;L=S&Ke#msm;rj&Zsdjd+$4gZt05* z2{vE#pSEtt@M=93ttX=9`Fg=y=xni=1Mf*Wt^=WKPR`E(kX%iB<)Rv#T|x4N};*M3%3 zJ#WxsmD)I&64xPu)8xjg2%Gw!dyEM@3>L^dwZ}IKH}=JZw1|&5v3Bw@I4^F9-d3vM0j(z$ z#}NT0=gRQo#2h)PZ_|xNH+N8gQScS&j^s4rs8+0!s}T9DnaR`3J}X+jM~MDb$O;r; z@0A7#w&KCjZC^Lhg{Yq8%}smEOnjZoQ?paTA>0s8!+gbathpYF-umX>?VH}$=9Uz1 zxTfbV9FcWuLt=b@B;7P5&g&JHEO_XigReT>u{l}fNKCh3M)6qeAPSlh1aUKtE)7`} zCh5eQ?4NBE=;46*6#s2jt|1W4hmc^Ql9KBdvu`OL&3$AL#d0|)^zcdfb5e?ec8|F zSWJxPww7n<0iyIUkYdtVD2j_`s(|XV0@;RfhBgPnYko7HIQ-mxnrQUZ^QH8zj2h3S z59%p8PX>^(ChJ27B@AB;w6z#D+zP!=z(wNx`Joq0k)^1-;(uFq@O<>RG@LbC{0$1r z1ae%_IZSI` zJB9rpbE?06cI)T0+&MiU0P!j?;I`x!_aq;;pSPHPSwZI;FW9F{N84Gm7)9`UzCKGYNx;u>EDa|zv|BkW zr8H-M205U7=`G=uakRdoU(cpHfsBJo@8Jt65HHS{eYcVh^TK?)^e!H{Iqj-$(TCNb zc5G8$R#el8F=-AzHa&>r3c7~0X!6>`dYG`m^W)eZJha+~L+KfhL-%u2-mV1k1JA>! z=L{*%OAVN!;aK7y=dez}+6t8(X?I@(9{m9QysX+jw7K zf%sbxObG4%2#aOkMN%u?=e}i~JDQ>N>O4cv{&U-LyPNP@B){|lrx)_TZy-at|F;!7 zQT$>_>m&Sbf(s{#=q$WIxKL^hj!&9v$7}R(=g4m26~Vywvf^qZQ}b-enbVUULqgLJ zQ75Y?NW7a`jJsGnd4z)FGX2p5U0H$@T9k~AZ;_arMng}mk&FKQLiFCZUPraS*8%yk z1ESeMa*WSl4I2FSw4~NVLf4G^NDDndCUo7f4WQ3d$Jbdm2VdrbHcop41+04@f{As|w2bXP6PnGF)ZF_>m7|24k(R4czuK^e z`>1m+h+2Y;>Xme!ESZg(tZCeJBG#KD`?2@YJ)3(e7GUp8j0sv8WpZ0@I;J*0;KGU6 z0$;b6<}qYYfXk4xT|A$Ob(`%v+ap-aF=`T|uad13U ze^WCTj&uHqXi`oFEH)mj2U~FupE}amXCb3+OyKkJh1OsXi%V@u&c#yw1H=g+P4&4sIqPT)PBS7tz&sNh2?AZ=xML=C7`ltkblSX!T9cL1B!Gf&4B{8;MfCnw*AZq3KWI_uUG| z7VdYgPHU!=c&OWj?acirp08iUcPxX$q(LbL?CNt&9;z@ z&xXMiUB$>Gs^~-7(~&f>QwQyn>wWc$U31^tGbO^NaA-cp>hWm=-zeyTUNa?|k3q{X z8FyoX2;<_oK$8tdhpTW*(yj7LXo{Z&tT$6WSH1TgbV=HU-}A!h4`7tda{!v6p^ylz z&6~}EC`}afBe~_*ryt7-E~F)fIXY1R(gViUGnhq500fF$v=@FkWyaxJ{1^vUll}6wqh&JVx2e#Th*k$a_f^!61spCn$=fiFwSS(W0LVmT5W? zK8-L(;Zekq+um25@N*BTK8xNf^-&o{$K~AX@V=4wRIZ<#gmh7-FQH~>Eq%}6!)|;w zA(j4(>w}0MoPaH$RvEt96MRT;t(H$mV{5$CGd*k|NW7mt9y0;5BmpA>4X7C$8L%b)u4`}slQ?cY>?}Pk26bL1} z$U8{XW!UoY?u+92T4r+}XpP=^>e&vW*^uKn)(tW(uP;GOWTB0TGD9y(*MI8*BS3CD z-#p_yl;k3L%jB%G!cwn9eZ8}M@2@{?E&Swibh~pdCSv!YzIbnEq^%OQCi>|H^Gs+O zM0UE%km&$z^Cx;;wF$4GKN6wX2$WvmbD)%WEp>_Og*J2#Sp4WNFz?Sm&3)6gcRa!$ zvuf6S!RT-N3Eh*nI_FN{HO*uD1*863MID=gs2t+V9DExiK7jD5da$q){&ohrm`d&7 zO1DPY0*F%ypW-hD7~cYKNanloonEgjm0Id4L}|Kc_X0%@je=A(UpTu(P{h24tqVBt zGa)p2s;QFg7`ojf0(D4yyz|C@L!_GO2G4^JK@#M9-iPVP*^Gv@w5e2i!WOXXI}B&~ zUyZg*wN=&+9KoPe_X-ItrB+kbP0h~;zb67Fq3m@?*A<3GD1fd{Ep|J~u$UI*rIAd* zIPkE+I_2JzwOr3IhN)SDG@PY(=_G7*!A3YJ%+kCbcEDoh| zo`$^%0Eq-2DnSN^3VLE{!(GnrqdRf>Mf}KH3T~!G@YWiX8|ss9!H)Jpj`BujoJJDp z7j_jt{|q)O7h^-z;qy@>7JDCj7AQimr6|t#v8j*d`+Tq5s{fjY#We91^q-(ST7VZ| zk-G{5ZQ{DWDBBjNQP>u?1*WR^7|`wD>hgpZjkw?>t`|`acB@&lc{Zv3GojWB4dqFT zek%%3YRBeA!uH!$%+ry{D7YK%5MoIKqA8NU>jjp8xJDI{Fs1g2*eA{j&ePuLJg^L( zP#KTit1ZgZxudP&>b=sriO>SK{fSeLFJL$3TWm)(9^z%!3$M3R>N#z{!HvGjs2TK! zf$Gq=Q{rYSTr~IfU9zEdemS2vSM;HdPYr9 zYK=B>bI?7hq!Jdz5LsB2FY5Hhn653&XW`CWU^g8fDti_FhYMh(wRV0iyy7V1^mBY$ zF!Xr&LNyvHbN(_IK`@!ufM1u4#pexg$E^_&4!{*EAvbfrMH)pc@~T5W*^NM?j-($S zU9_Nn?|&muha>o|)Js`iU+DhiGc)RkBP&O69y*tek(a=>BPubC&Wk$_f5~^s#a_h| z4=!Ss_f1-Z^iBG;>UZBH5IN>*@)ib)omFz4J29}u4#KlMVW3f&aO4?S5|jAFJ`K!L zkz%lP(D*^MRwr5Wuz&v(^=5MNZah#SrVFA@>jLe<_h;a3(sdME-@_`~8)AGwmPQ(% z;WuKG;TK``zKypV*BfHGLG>s(r$DY@^*h({4ONsHGdxN|O z_Lx%Up_!>RrVVIo=Py;+Hj=HRmHsqK!W^-k&|hz4+{1bD{{Op)PzAEy&xSTULx6Y( z67&e4N|x+);A7)0>UBijaW7CX5hVe;Sb)l5hKh*0hO<_-a=n2?bkKu$&gugJX6XE& z!+LyPoTybwT>UvrHh@WbV2+5HNS6ZmNj`OFL`sQGdP!v-uHoay zczf^;Nm?(1S0gcLK*55#2iEV7Zh0h=IA|AoEGf^&QuIu2_< z0|6@>1~Tc#0s|(sN&{k{u4l9jxISOhHcw5vmUm+D9c3w?TJCWW8mFDg!pCJ_$}pOK zz=gW_lwh|c$N6vBXleOVu!!Qto-lwXAd#)`ZC%*a;$0W)4r|S|xA3z0K!N}Sa3S$0 zm4FQkZ@MJlEfDK>fh^eob##-E9 z$xX?{b|+(;13moB0}~L3p!DU7YvY&3Tq}UZ3cL+1^GV;Iz+lJ&+4gQH`@rfyx7eoWo{re!lqD0NsU|FQJ68yLuhfgfeG#tW*b;FN#AK z3?k48tysRB{O8WkTwanjO0~VXazsu7j;V`%E^mKyeqqEj_3b~NEN8L{X`S}QGbfC@ zdg0hPbs{DX-t-z!xgq4`8uvo4u2@qaIHGpalc1gA7H6~0@2C)Q(9&lMl%$y^^_9yq znxAfvC~=gsjtLeDa3}A`?&d0czTw)zuI)FoYG$FwbcU$wC+!dm2+pKi!86k1vRM)E z8eW4`L||S{8-8vLw3HnRe>4?IQD0-&bDegsrEej`jgtVr#b7ySw#v2dycA z8lx?iH{Kd6VQ=-J+yWHm?9%&PWz7_u-o1kweBglyCVd22wM@c|>)WdqBYA7v<%dGs z6eapI&`;Pr_D>p~GpCNj!LVeA)2nR=CPL$yF@a$IriVtS6u+_KRhBqkezOK|Hf$9e zsq1coo4`cjC4+}`zy63XxrYb6DWW^UB;)vk`1r%UEq$EyOaqC5!oa(hUl;Z*4cd^_ zL^-uU8?ah8sWCp0biu>ehNn!Jkw_@i1ZDE>G31M^pl|m_uqG~g&&130IPV@-lV?8w~1c2YhUWx(X2EPQ5^)$NpC?Lo^!M^jGVGMc(8B4EtNU+ zMHK%QdTzwRpCk+~y(J;r3&1b@$b}(cD_4Zpj>ZgIS0l{$dwL+2mw0$gx}&o|K=_l` z=?ZsWsMfyH3zY51Ihlf&vUgoeNcsV;uMMv-*F@8Un`&`Tfdh0NR%`8Z@m8waqeE+`K`~3-f9`9n=NAx+;I8J|9M!q&=YUUTri;CNRYk{(f#$w_q_^0DsH<-v zbO0IVaVKz+p$)2wvsr$;jQop>7;j^n92kB^O%L=A`r56eTVy3!)0AVX3Pqj*!N;kEXB5Z^zj_jvYrHNV_d=wx+ia@mDgM`Ywqa+&FdV3-~{q1)-x6=GD?W)@XK}-U$BB2Z$zW zchW~Fwz9o0KGJl#ae?QFkcE$y)3-#R9zq;Gj7l`A!dvUIr9~O19=bSX|fx`E)Z@fHW8q4k_^&Xn2h0l!MifnXm1VPoze4cI_t2XI(_C$39Gy={@X;> z;dy;pCd8BDT&z5NYWyq&#jNAaeQzLm#&DFo-)Lb6(ey5rRGw@k<9)5j*=*=X2P5yK zRSm^BNc(URrHN}aHIpN^qTC1rd$U-%TqSoN_yn)flzkPsl~a$43Eu=EE7l(U{tW2} z7RLeD(hK-<*O^awpm(oZ#;TIl%fAv!n?S}itZdxR$2uw8oh8|w%rGXtMTTaJR-Re`AdzI9bx_#?O*>cD@df1ox z;#~Tt%h8q1!#$B*~&Jg)6SkHrRFi- z01uT3`&gHC-MRHGB!$+uVX0SAIR8tg2PvB+M_UN>US-(BxwpyrvN*$#mf{yMy(Scc z3W9Dg06)fs1e>}k>sW)uvUWD(bIKKF9%w#`b3VhtP^WZUe@guP6cYUGTU}evTi3-0 zJOZ4+^DPfkir)Kcrt(cXMU>MmAL(J{fgA2&I{ zx!EaE)`;*F`w+|bF8`_|1zr?GGpo_szwKEIXoIYr2s(^!7(6gDi?^@%1QhH$@!x9s z024Tt8Qekwm+^qg4w+vW@Z3@{{q6sCD>iSl`Pp-PoJ(&76EXph4398u-ikE$&5Aph z`#)D|e#3sc1f44K|s4LW3-^(SY15xEX+$jrGAa!D_7&;UB;~4&`};{ zC7UY^RXfhU#0KZXO8`WY;&tNibFbwZ`=sd3kmdRk-w0^`!;BioUoWxj zqeoVCpEn*RI9*QSx7G`{eB1@?k*1$+DC=5!n-Con;yCjd+Y;IheZQPDjS^RlS%w5? z(>KtvbmVp)(n(w|q1>Xs_ooRKoGBf{kJ;K)3%3QUBHJ-MKY3Z9k`Ib^U0DHo0uni$ zmj~@qjp{4X2fu>p`&E9(Ldl)`-;blz=CvF6~3uw~ukpFqNG#{p%(Dd4U*vpvZ0IlaC-@4D3rA-_0 zI~>z-A_lkl+V^M8$v>ZAgM}Ep-*p$DW0EZg4tMQ4z*0puqVXmVhAY6WF-74xySl>D z7t5ixZ*k{-KBq}J+JBT&e#HE4sE&bdLHmqtxXVzCF*&QT^3-?irSHUX+43{v;1$v1 zJ;9L3ITCXn$RNnq+}Xr*TY7{m7z#AK8JbgYh5&mB%2ALQg%ayUSs)s&hW55&5&?8e zCp zc2l8=)LTf&w2=^>DkAJX3_`?@!D}Q0bTOWKwI!Ia$X=vu3O*fx)EA#Ed}eBDboaYrFRZhy~pvoI_IRm!GNB1{;kw%xsZa zRO&E=?lDgtt%0iZF;|6se5Ta`8VSMPR;3FjdCKNuJ0OYXHq+|X`$M^{>&(*Uk(6Of zYxG!$=6vdtH6bmQNZ_o+xOb0#acm_A#Tbfs)@KO|ncE`j16ui%$J)V09}f$%$qIx= zkJf=o&*jAiJ6)!m<>BF5i@>b>AXj=4z@MNXRi>@*#H+Z2ABX!DtNbErMtiqctqYlI zs~>bOEs*I#8|xI4G?3DJ>3vg#kUz~2`ta%zVpp}jxw;Lw!Dg2Ac6A2Y zy1c=s0)GbimwV_wx!uOD(1&M>^Kb7o^#!=2_v>Y$<~p16I`}A1!GX7(eSK@+#%$wGq?eOB4nV1z%CFQ2M#i~rn+#bC(O;9ocEzjN=4N?9XWf#j zlXS_{3p5#Ggyg_>Lq||WXKBN+Fcf=dM1kizd=KY@u{r>M~`AnAgd7tMw&pF@oJ?A~A zoPKe~zjOsaT9ackUt+b25Ziwa{Zb?+_utMDhF7RtoCX;S;(yP(1BpR~0&yZi><{A_ z2&iU=u=}wgvw>zD%=b6CHFy9zL3Mrku_W&YKWAGh&$E9T3ch12)T$%TavZCSqnk_= zyxJdDR(LAl_TBx%`&v65)kyC6>AOqu?#F(lO=Q1>6rl}wsk87JQ1@`&!=t3ise}0K zwfY8;s%4*t5!T0Rio*sI*YBQ3ZQE46p&C`Y_97;E!-a#VCALYs%1ZjgJeHbU|7x3h zY6$u?L(3~=>ORwuWA;1u$=ju82Q+G_VNR^d&eEqdix~2D{kOkU&YaOFmtTn+*2P9J7%huCbx zk0yBDQ$Y?f=28RwEc9Ab$OTW4L2ZhsTpvRwW1>)PO*Q+YMC-q9b$AQmOEkW*f=1Ak z>MWWy-;9fxoSYO5qmkbUG=rsUWok271w8Tn#rOUXQMZ;m0mL z4Cdq2+=yAQd~b4uQWK*bwWA@vX8kpB{2f(v+AG+NIQ{JA*e?q|6=tD@wS}*T_rthLXk>EBasA)PZIr{cmiH`_DFC) zIs;k&-NTy+tuUe#Ax|yf8Bw^15nY}exIPbi^KDB4n0UWvk|{Cd`A z>H{{_F_0Hs`U$y=rdejLQz)J_)zE8UQK>K3$3MS7%05xo#s)Ve@QyFKtHd>HS=env zs1oMx>9JC%q?df5Q^`Sd4QWB^soLhvoZ76UQ+7rTqkaVD+)(IPSWs?Bw`r$o0!mL) z8pSh1BobpO`JY|;jxSO^S&%qn%f!mJMvXRn4We+cgqGosjyK4*9yTe%af116xNo| z!j`UC5IL+<{l&qAjCh+EssFkO!c>f?5%+3x90?)d?=OXZ$l>_76U!z>ePeAz|DX|E zQ1z68U;}xf?yJ8i`^SECgL;I`x!~{n(Kv7a*?%}J3_pP=Y^fK$ zL(_6Uv-y!@zinp9kfz>F9Y+1<_x4b!(t=G;EZegnW}QeqF`|06g6d-(Prb)1iblzH zWbdp5DXWBe4sS%C3Y_;Wvi#F^;^x&}6m=&pq5aOg1;5gAUK4j-*Cij%2(yK zGP5$bO9}qojo6^xW_U69d-DTonlKl*7Ltrgeq~o1FW8it#a-i|>G7uT9)CFZ{QafW z_7`lI&u_h)lyNWnJiun097`Oij9X`xK8VgL0d%BIp&m4+Swq_kRn9`REGl^qcLB#3 zIq&!nzRqtUhB2LoriMg&R;fEHbBwtNNX&I;$5=kuQ(Z@ytoJdQm{f?C#Gj(h8_kk zPl3HltY*bmILn<-_URE)X>9B^`V`R%BK9U!ST)judDU7C*Og_fm8TdF92#u=X0V?@ ztA?ssJej_%_Bo@=<$0_NO%c`o`{HoEl?BSHksF=GZGUsXJze*ZK<&%DlQlT0>R&#g z{7$GeAD#FS_o^?V^k`hZ@4kw>^C{CgXy>E)Hkncs!pD1cc_6DK&5b(m(yUTrQxP5B zV4_`&6z-X;znX^0soLtHUEjrQ>J**Hv*msaXB#rccxZGrMiez16@ivZqIeaiFRI9#u*m@%p zJ2+q~hdN;^Cpx?&DUgk#%f*P7B7F=YV^S>H4UUaY~XAb z$JkJXt$8V#SDx4!$|B zUqX0X!F3iz*X4Ls@p{BGweGck(jLpDd_QMSuRv9-!7RilK!4o9^n5$=F=-QlHh z+s>mIf=RH`gt|{uY2@aX&Xh&-dvSws>g+5~e>3>8+8x~lw|7#oc-;fPGCpuguU$(d z%m+*Oh)Y6fTlcri!#;hTdU512M2s`ZZ;z5msUSh)j0nocvEQR!?$qs zZnOKmDm0ui7ARDl(2QoCiP(XZw3Ap<_Nj^KgELGN%B#RXF}+H*26u-m@TbxSB5~X5 z8ZT{I9t>r+Yvr6L@1Z_hdcZzds%PwWq~r}s5mR~Fc-lqfTZK&jBk|@AGgK9P6i(Rs5Ww0xB zrk8uMWva%9%jc#D&0DmjP+kxHvBPAm`&CWXG}ne|#Ao|fFgUQM_n>~(e8~f^bplM|YA%42$O7~s9zt#nTgvvX8@YE= zQ#Q0{ed-{{vuE96Zpp82B2AOFtw(q#LS5ArqJ-6cF)5ycH+BKU>(N;GkCv%ngA+-USx7*S z=4Qzq`eolEmmN2SYuB0bJP1{h_zk~Mf_afQq~F|S7OHWgNYDgXHo8qcr zOcBd=k5=5k)ZFr@yswAIEH+jU6BuqmA4jtabmb?DAzob|Esfgo;t~S(>|X|;1W-)X z;-|`#eiJx!Pm6Xma)5u9=C?5JD4;Q>Ytd7K!O7Ep0=FQ&ZcE14RnnlTcKiImQrDc& zQkK8GhHQgXqr$tzEL@+Q^+mnj1_a&Mouu(5a&aFYv$yUtO7f4*Wz*iiv16XM;nw%^&x zaBM`30bOKqLI_JRsl8au=Fk5i?DEXS%x~Yk&atbxr74&~#|ykdieqH+>wWM~n5kq; zYesA?C$W@`?*-8B3S-og=A{M6EJV?sE9!FmKx6QnCdRvZp`&SUYqCODq{#{t((qm# ze&`Gsb_Xs(!3^J<-G@bk(xF&5esmJ11%wdJcHi3!1)@1+^-XWtF{OJOZYu1SlSc+y z!$#HVT6B7<7JjhBJh0o79;kG`@skv)-X#VpXSSSv-SWCd^e6*LnXeA`^_UbkFw!7Gd+T_I?jC9UFPSB}wm+ zePGAnQ%TQj(H)pMR}w9hvZy^0P;yYBwV|s{%hO73BK~!x5K932vKdn(;2kutQTZ~_ zWV@#;6J|Fy+HMrWSs91DGXi<*_#lJwC0Tz|mAx~&9jokSvvFyjfXh^ttj^Vxtte;tJ}S%hcHeje{*fWwKPZcx6%tbX^iP0arBTO} z{w#jVp9hfVMdJzpKFvY7`N28XUKHx^spIYOBtm(?CD9-NqlA!<`q7^pI-Z#XFOP=% z=Idc0G8}h-EGe5=%SpUnpW1PzShsib zMHXV`5)-T|Ebe6H`J?&YvJU!lPgO%yU$xqs!7gg$k zkz7cWyg38g;w)G?axv7k0Fieswg22z_!La^1Geqw2W*eUvpYb3k7i1zbVTQZwU005 z;BRu6^S%OS!s~lr`$i1NzPk*|1Iqm7LkUhG_p&mAP7}Z7QE(-zV$A|olhVf+ z*`)rygF#z=fq5Oefp~W|Nub;V!;R<+P-VLG7%0;j2>q1BGfejc1AB|oISKFpESW+r z;Df^xhZrBgY9?qiJd4!8lT-d4s6ye|aN%peOmyJ|XuRQK%M@mMTiD>)td_lT!|4vne_qddnQ;3u zhSZZKO_^DeLc!t8nA&IfWYi44cn3*S6xBG1vJ2wuUKDDI6mV>!#z9>-nb2e2wb;F5Ul2KX2R z!`Zz7aMirYH{Pgow7exV>Oe)m#0XRlZF*oo&$VQ&J|U*NuydvfG=Xa4@LcA^kg*mAW5xA zddaQ6ACS>gYM2y^~N9p?t0R-?m@5j zC9)>c?edOg9IaQXLbglH58N{^vv69TpHM7@l=toz?G~;2MlGjSftKf`+}`xIQGi4k zLc8NJp1bSfL}OWCOd{ezJPD-Xcay4C~&4u25GP};VAB&zkF`<#B}D*NV@|k&PhnK-neKdEl4zeGUH8R z87J!L)V2s|H(P`(;3ozKRDA_5jL22Rn!javP+(MFx|c$YB~Ie!EvX8GX3WI*xNDl< z=GTu_aLm4wiXJWTmZ(uVT$G7;%0}WU z{N~EwS;)l@uoBZF;0oQUmH9GqYZNzCd->DodmTC!R5j7@;1`lM7d=H#sULlI5-e6< zxh|qx_;d*lQ`L(pm1d@@Cni(c6P*nf`n_{fw&uKA-AB=Wx~_dYN}i}fQK5mFM&;u} zV+E#x!7Y9Z;LjgsOx!2Eu?U_wa(Sk^(;4!)moGD))ssWMlM5?J?44{4b1;?06P4G6 z59H&?$CYpGB$gaR@lJQOxDSx6GErIfg>7|?2g5aBy1H}*95;6X-rO>k_amHNa^WS> zqIL)C-e9E=4*mU$vT1j31_zrPJ}lmifQLJ*>?>fz;O}oSB`3wTy34K*3+zo_&FIij z(bHtbkh~(xb7?TH%!DW&U|0yjm5YxXE}}C(CI#{im5NUZ^@UgLAk(udYxL0Ml$k6J z7ptAC3%0tpSC2e$Fkh{%!~er&BsNmzus0zox%(u6i!M{BNuVY&{T2>0rcDH}N^rF* zeFZJ@O%GVW_vUNL<-_ppgS9}HHzicO*m~tLde%IE;=>CnRcgou3xDFXr_IFAW+5F? z8RU_E?K^fduM_!O+q((3?8Z-c;oiA`TL@HRrfA+J9|Br^_EM50`_vVfNd#ZOW%aZk;fnRvnWfGU#JdmEIdE91h&0L1AGvX_G&sVYO1N5ImxvJYnx8lU+*k8E`$r=2^MFI9-9d3}sVY$W zG7NmX0|)WT#oGl8!V zYEn^?=bI>jSKB=Z*=El2HO=cqK+GX?TNzXp&-B%Uc;zd-SG;e?uwl2{q(a{@;B@;- z{*h=kzJC-Y= z!C#-s3)J4#nmn1Vn;SaGSTb3q*kAo`liVYCiG&`<*N8j8DCE9X$*yX z^WbO!I8gdYrr!Z3SL$Uv)!9bmKp2aSzoEHA3jraJc>l%8iXQN~=R7RO-{dbC@T#b< zyU_xiA=F3|UwZq#YM2-9rM(tbnL-8o^KD@RA(W_aAdS>vxcB$?$giavjA7#7%08d8 z7&3g7-o{%nNiuvg4LdSU;w}Pm1O>R;ME=e*{v*d}eEc=8f|Jq1Bh$-!l>GdwDBKW> z!ez7uEb<_@={CT(usSN+^!8Wi0nigotxw(kA@*AjwIT37WT@_`a;W5vXoD{UQAuyA z#3cIQOf4*uPZwVxW|?@EA8C9qZA$a9+D<;U>QgN^P7>UTEK>qXZX*X_cXE6GNS=uq z5{IRppL&EeItGUCg6s$H4|wgwi{T~!A<<6}-m6VXMCE5u&uc!T4I2VzegZ0K+&!J8 z-UyKtl+RPX0Ny=>5Q&=aLioC0j9QlmMIG+m9Pnj9TOAq`!jZ(%1$+)fDC(pC>+?0|Yqts;w!*L8dDMrcPjN-IL_qz=6~_2tHOX<`f@YWEpk2>Hy%XN_oRGcu&(lU}JN z=u*9JIGeK~asO}^#Ya=?A z@J_mPNbPw36qza6&bBXAdX*_nA%46!Sm78i_6D}WL~n);G=-Xg$^FbeNJ92^6w^Bc zQ;+!z+{O$rmrEodJ4oZ>tJK-Pr{-K3V=#X zf=J9U9tU-$o#-8IidDwF?u&si&`^3_)ByV!Q$A8y&Ry^(#ImlBC~D8A06}U_yf;+S zB#sOwU_9!qS=MqgC$6lrRy=4?v3zBKa#U`%j?CfwjNLF~mnjWM$B)oIF`RCEQOJJ#)x@to( z+&3q#t<3JfRmq844=Mz>T=w`UzqZ(kaiirhg+r=T^7JN>w2{NwHV8(~#NdsVbRLWY z0}^Gs*{qaG>QWTncSJ0t!}qFyopA#5M&?>!j>At{f}BOQfHjz;5m)W0#H8hb7D~D~ zWqFQf=f?q@KqMHA-vMahQQHz2A3ZuIDAt=Q-5%Ek;S6{xIAts%h!^=TC|aa-$A9T&YnNrvdcs%_DuaWv=N~U0&BhC z64b#?^TTuT3!wh8G-tY9NU6oq_hi`S)>ueNP=J{c9i4ev^wTcq4+25~9n5v~4&NaT`X?2$D3oH>`qOhFFI-0pYYhb!{ zB)b3@iCSR;Hx|6=_XkNdh`3yNeYy8q{?&u&Q|j?A`MBZ({c`;4+~x6jQmb0RyeM~w zrQNVwRvumvE{OTI<#dPC$X-k)s<`AN#7R^t!FohCQ@*i#Q|UKT?kDhOOfHc|7ANlZ z#B}-*c0=|`G)cEWdiHeTdc=L2Mx_yzKiv_oNUz$HG~X`+CTEnu>#8~64?IGQ#Gn+w zSpcSzFtp!KFGx2Mf@IymMrz7UatFZ~aS%Hr^k@cOOtwQ2cN%xW87z5?%HxSQVn;yj zZEe4*r#P+S%f)N^-(=uvoe6h7nM%`w=QCbpNrP#M7>C9jwl(>_ke=}|Mt<0~CR_YU zknixWR1Nxc8E~@R=4skAs)~g*q!5HTLtiPbp1-ck;i|gM;lNE|pk^s2a8CDLq3QqM zaHK)U!0OGY|0YzLS$ziqWiO(gdNh?KM?P(*?*(IZwiMk!)P(drU1Yc1gPulAWOfp& zHG(k}x}_d~Mh87Ysl=Jfw`Y8K>G&LflRG$ZSBIhKvO7G6D>;c*)|oO!gZ;ZpBH#Q(GA(H5z z7PP_ZPXnC8ceeIJZmF!;e+8eFiSh2b6~{}#&lr9)vwlR z$5*T-3;c-vdB8ORCGO`k9Jp;Gy}u-1j=ANY>h0FVJf}#|D%4$4xQxJ4@1#eX%EvXS z;K?mQd=6}xx2rp;8^VpQ#d3$UM|wyvH-iPsBFTQb%n{ zW#g`cCserpoI-zmP{5nb#Ty>`^kqpa&g5F9x_gHgZu!}dIx_{~1v+CkM~Sp#daOIolzM62D~_GQ!F z8aA>YyUt9^%iPqIOM=J=6;Du>58ni;rVLZM=GBC9b2d=VJL9v(QR&@uh>eQL*%m6P zI{<>-cKmuj!QkAhz)~UprH9lN0|prRVC`C}3M;s5^Shq^rv!gkl?~Xil3&5Xq_HWf zv-|1&;;fUirF+-;?9-A9Ew)4~f+_AP;RbM`e=R+=&a4u$Xqe}Aw>Sk}8Wc>?VUr1w|Go7eNdS-J-TvRoJ!qZcF0oWuFHJH5#$ zaNNY?OdA(~&jeVT06>Y5S+f(^N3n~?~SsGCzLU0^f)K=*9a0B6RGv`5N->EWS&Bmv}0qDxIGZn3E9+=>l<*58$8j-jnP^j zjrZN^vB!}swc?1HlKI7!qN#!X;HpsHBJmLWNMHLnfS@VT1)^*m_(l)c!IBhIS&97{ z@v7d967Dl>9o0Addvq`MGv43{zn#P#ow&&mr-N_r;e;Ls6sE#Dx=|EMfXu5E}_MJTyRaFGp=<4F5`T2zx z1XP;AmQNP>eR75<4TNuV(N!{FBqAYhlArCYpWXM%HHGQh+)pu#3Ga0L>{f>2YBHCZ z{OamXMG-Zn@&RwAmE86MfA?<)hon=Vre$4D9t|+B+suR5JyKdxY1}~cy}xBf9D7MU z5}l>o8Fjs70jaF$2frN7vp)D!T1ywUp}qx2cu<>)-}i){rOoJ03|uYVE=H8mKRKJDp!3mF2A&r^uX|4ZNUPr!STpdbD9stdqNNTSR5a8h! zSamZikXktRkaVSw*n`P41u720Qnd$YN>V8HE(mI=$VE0oCK)CjmUQAq+sw=k=`+!( zxITwN$o)_45ash!^KD!)=_uaORc+qFu$fdq8C!2$3n}JFkgzhLj9c3A^iZn-ghm*U z*^vthz?Q&_p=K@?9)z(XnCkJ6{0KSj?OGP6yYncWSzNtgEl=wj5)|5bDSn6vaC~nl z|K#;$`QV$`_p7^?1`dAVrKM3&sekW=1eK?Mf&=yDYLE2Do^i$^aY$D#^j%U!wd*+M zIMEttlK6n{RBa#)%1&;~1QYq+aifQ$e{G2aC)$*(DW@|!_z3Y%2^SN6 zjaw|pEoau@+$b0wS95W~#V0Njx&<6zeMq0bS%cG=jsNHT!SpJP*EWzd=|M#xqiYMN zVKu4AZ2RhD{}~kjF3Y z%LDTEu1HgI1l1}NnFPa7X&g7uhbc9CwQ*er;g)ro@4749;=lna**hYf0x^wWoIta6 zXo}iLxC+){zhq_YzoDJB3}WP0D)B8 zJTHHQ^k!7->yPNVm{);``3U4>HF1#(iED|=cV~aIs$<`MTn@=$77J6;cpWOx#C>pf%%FQ3*PA{oH_j@gsooF82r2#{GI=YJ@Qwx z{q#bi=zAI@iiQz!L``{B3Ix1#l(a^Bo4m!JS|$b3^a(k`|meiW0^^@)i$AoCJy{jCP0EcIN_$ zIZaXV3^fT|*?bfZ-jV)twKg!(*kQFrq@sSySbGpR7`92}fj-L%a-aurJKS7YzVn9}Q!nR+>~A2;W`JG$bw(W_u0|#Lkl7H+Ucylq@B~dc4{%di znsN_}J0VhuBRoPg#3+KmL=S$roC=@+o>zSn!K{n!sSz}D7uvRVq-{#dPr8sH{43(! z0;Jt?9Y5el6CkDdtE=*ww{1Djpp-^M_XCL{CR6U9#R&96G~=R-$GK-pkp?^FA}(3pr^!S_UoK1{PnQ7M zQ(Tg0mf-)M7TchOm6gP)f7MV8HX9|nfvvd%Ipxu=U+j6c@xKcS-M70qp;;3V#KgN8U1md!=A2>Ppi142v0CzlzGau!oJY)&E50qe~0N*n=kQt<p?p-dau85#1MiiOW_Z}p z(Vr9332 zTHfWcX8{C1Ohb5PiR^2Yq1U=0#+vu(H(ZQMdeuw(vw*afNk)y>EW6lo!=Z#u$lX$K zI1lD#K?ms2@+}FoDUY_ZH*LCs0G#m$4kpwU@^trtS#@X#+LTCAeiij!4eo@y`IBF%kmOb-zin{J^rs^x42|Ys)_P61~+g)=D z7;xknbNkuZ!RHZ7=_jKsO^M2a^&(S2jCZxzQy3xHPZ`?YEsJmU00ne>Cg7 zll*t5f&2x@bH?}98z;ORocEX=o-CHBVtP>52D(V3Nd0Sk#`N-w3)>%jC$r(ZHEkC^ z-1;rg5?iR>?L40`72D{6<_L}GDxJ##$%bgU=4;Kekd+d4j*TKN~ zV1fUgblo4WE=4&rx(&zXUmtcScMn$jZ(*HrvRq_E_OcJM!~6I#-n9R<40|EE`%U=|UBc)YL`$(s+06*L+g5dbCzqOws#Madd%E>G z%J|n}?{LDY&sDk789jkYDm!wZ_Hg^(z1o|heD2QuU5H{$D4F)VHtiZ^5T!ZZ(5u-6 z#8!<*e`-PwbY*^rG^H!N`BL(Hc{NI^{?|;oVCjwt$}7co1|J2vB6`HZp+EL2Sq2rq zD{UJ&qbxlhLa?1dt~WCe#^&~7H$U{sKYOiPHdY1oM?c@$%ll_(>7zm9lyXM9xcOh5 zkVA4YCq)ax`|zvlj>aUOZgt;PR7EGZ5a{yJXH9F zQ|nZA9A9T{8!*epc%3_?sq$>lax7Gv^<;m`joGt*+4dl3`evO^8Yg!l_Eb6F5Y?wH z2d>vG8t1)3d_ZQ>ss)}a+YLnoH2>Ftr(o$HPQ8TI4_8xQl^ca|DW}xk&^g~4>CRha zjl^0GkgGPOx()4(yK>n{E_9!q>X|IefxDQ!v$`(=MHVu*3ZV;4zS4&3mc0F;+F5fI z2cZhq;}3fgGPI{DR^=G{E-RXz{n`y3)3jbCTyeEMP4B#BJ*&JH%3t2xaeTeGRdFCs zvicf}6;83N*!RocSv7TKsf_P!poGigHo9=&dh^xMjfKOn)*Qd6j%1g=2}s@r{aSwF z@5`OkDanhh?no(rK8s5Bac;K*UnQN}4=p1kQYTHmF87Bq_WAv*i!h-uo1FX(l{^Ex zbIZr7hy91_PuF^F;RfEf>4;JuHq~xJmw4%_v`^PzFrF9)6kXi}nDwW`;Z zhm0!9AFTU$iS;7sOfob(I(GXxUOzYve#4Arbc^z}Ehynk=KpJcw0Pu@Eb0VWc}?!s z)E>Bd|7-sl+HaBtiDe#!aW_wWBLCfE9Cr@R)@Es$yD2BeGUdF^Lv`nE;|tkB{bGta@%I_zO>@Qn>n>YRc0mf|@^@*ey=95c^sL&N zmYmCWpZXNTUQ#@F=xmRV-o<@4A@m58$rdKDgD-shjcyjb|AzhW=&)m!f#7~?f9MY4 zOe=nOVRQfe5}klqYKo$VI&nOk-cPb09`SI1U&?E}Ov$E`wF{dE?-%I=@He(vQLfY1 zvZD)c#5O|l?iW~J)2kE^Ed4xaC6PP>&v+iEd+!#-XVWE{6#GT3*yFOQ+jFGGA$R)y zUWN1xqt{L=-8fq;c|2w3+nWQ{ebZ5b2pt;buq^6YZ+a6`=<1c+&=+t)sn>*5*P+YnGditpebs4O;yC;8FI}+MdAjv5A-nmJ zbx>M1ZVj)slXKXg|9nu09missW!LE$nfB&k>UHhb=4J-*_pZ}BPR}@nIAWtSIyn{D z^zLj7+*3hH^>;V322wU|Xbz8!cK7GkcX9%{3Svx%x-zQxwX|_%11KUnm;L#6(IHUg z>8Di6DUCvr<~}*giWl$?Ct20oJ$lBZ!MISLhliB%kK8yLcK#I4^NEZ3;J+i#rJzYb zD@E|8oks@d*FS&tNB?wtR>?@THf36@US7BlM9Mu*Oi7dK|Gq=R17#MLOAD$gExmN= zwuy|;eHZr!*Qwu{9#{{jy^sFaKp@=xgmba9bRR!#WTsWaYL}W3v5A_kRp`NE_$o&Qaiod;SC+GeJQSN@CXZB!>n*;V`P?AVDyOR~H9vy2C z-`&ZX&8CmKA5^cZC=EJqJQ}^tK(NQ4WQ#vvwe=1^I`W%19Uc}|wciO_*ZYK1Y`II# zkT_;&H&-|MXx#kapM)x@^eJBdl41A{ygvJ<%?VDi2E=*kq#GybpC8KOnMaZ-C?iy~xKjqRTE&vALpB{%d(hhH)~IR})p&FbKXcX4^Rs9k=2_sgi+^vxG`UD1`U zeEp_s5o(&W=34GDm~>}$S$ilzt(n<}7hCccjCuRmqaZ?M+=i{fv+Tp{wnnB}LyFSv zV@7c=9r(FKo1GY^w!u3%rpKC48FM+I6mJ)MDy3V(;rAVH*5?(qNjkzVE{g7ZG4~py zRMyB#+ilyPC^W51N=jXI&IHSxkoA=Ji#a%}l^!oi6j9@bq}+xE-^zaI&m z3ES%)U0SLv(~@;UmLoD1Mw4YkGQ6>~cTGNo`bNq^!+<^4bcf$mQ46orU5BVmx!Got zI3wQrx5k~e@EEXPqeIkzgW}F#J0sG=G(v-Y`L$oxCS8(seNZZPVY~$eWxq=8p9XyS za}|33lc}whSl~h}7Pc+@gAQukBU!U<^1fG89edmDM!d>RFauM0_!$=2 z`0!cx;l6ojy@+-0aH_Sn3t);y%SZ5JGFjTce8fIDSnx~VyEo+{J`bmFokhWhY(vej zoy2IZ-}62nsofzR-P3s@HIt5CBbv8=N^YRM++8_z*UqzCnM_-=VAuNF zt32rk`;9bG0wk)cO2^(r`&iGk6q?dGms7|n)h0%^nS_~vf#9e?3Fv}vQ^;#n`_6-+ zj&sLiGxiai&RHjcy8X`m38yE8Tv0l<2e$1Ry-Gr~n|Cy(_<7SaP6Rs;rjUaP(ICeE z@vba|EU8*|Ia@26UMy(=x*;nE10~`%zC!Elb>D8QpC?rmX?kSuhG!C&ABHDmPb=RT zC=XRJ`*p8u{u*0u2j=asSH3&x=iRMldB2Ri`}YwB|{)F?~{Tat6h5TgvudagnT>6m>->R7#8kkfwvW4BRJ-yZInAYZ627-I=YsOH) zzoS;6%Q}dfja$b%eA~{OVj$R=O%Kx}4y1Q-QZGC*CS%+--_6a&?dADkv59xG9jgFd zeH>IQBZRdi-8i-N<6nE&xyg@8OGPaEr=#xM9J1(~I|jszu@~-JBs`?Gu-I8Ot6gLR zVpFa4yUi6xq$~(kSxmk4IH_tk>`VO5g}6TJG5u_uqdz~wy^~{=@)B+ZYTUrz9`3Xw zSxq|sze1|AM2qT)veGdY$=*CfJvv)#pafj^rZR6RadsAqMT&0lyZxbv=ImX$+jsFP zr#6&tmVtwj8a=|^{@nOf&)>aoEy^wwwY5LQe8AlH=Apyop8sNe9sfi8sfU0qQ z(;v#;WR;Et_eGS<)(O4(#x82t3D-m% zGj0y>=li)gQ;Q{!l$CzgU{`e(=n&}%D3%P)M{#PBe$_hZ-y1a_4E{C+8IyxO8GFk# z`^FgHhlQltUgFs2;7Y0&tHtYpWSnlqZHnTslo|C#&70x=JYW7lt>g`gJ3c)iqq;Q< z%NysTHL`IVcu6O*S3DXv#U0+|_ws%f91tmeqDI1*EVU=rI#luRG~-)h+HVIu8shC3o>7WW zd9okcA@m*y7R(Q5Bxi8uBA`TejnvQ?!+%T1^dj;EBQUGti@|#4AHFQdR$j-Muw&OM zp82XcjWhxK;2tw^F1sDHxoQ#3G|dsjsyJJ=!Nl4AUS?niuTt+BilNNLI5&kUQJg=2cfGl4HodfT zGP{bHG4+P2CgtIded&~qaoUN=Zq1tIO=d`10HB@ef`Wz;sKwuR6_%C;RhO2^ zNa;%D|2LARCyhJ6tHWaRGz*Q}dae7!(tP!R&g~6l%FV_G@mISq@Vk0{**AUv%COBh z6<7V$Y0s>Ktkl)6W#dj}OeGaurw1qQ10;5})#yJey{^l;WkcLQ*^WDiJMGM9vT>I1 zJH`fr+oh$IGq0h=@zSS#7f-zhe?Q>DUq}<=Z7G7&EYas44W2pol%$!p3R%noWPI0k zjwlesB_ZNI%xArKh!Sd0o!{>!_0}~zcZ|-&1fS?A+}B^3;{~ryFXsaAe|tDR1MEb` zz97L};lOv`T}m^9#SY`7H5O}x(v|S|MOJydFaV_srYNcL(p|`(H>8epV;rO z?rD9?XR=TuKwZsC9SnqFc8B5*qgH1>U|Pi+@QXo7=(IxS5?7D6BzTP1Rgr92yAVWP zZ>T?=_)vmyKYYW2KU-kFG02ynka9ogReZA2g=xtz|NlU1?fiR@%*CRCs@al1cKpDS zGmBN2LN;GW9ktK9IJG99l7=^+{b?L0KCQZAMQw*p`mur92xtV#=MeOmFO#;?zR`vJ z_7F1(p#QaToR)>!4xRGyT>_(-?E?E*S zwv-|yB)c$3*_Wm)^`H<9qJ>1Zk~K1-B+DdQvW+a0eP=Mt|BUx3{-1Z=&(kpG{_eT= zp8GxD^F8-U&P{Xg_?496-c_>}jGEE?<&NHA!}FIaL6~>L|{}8@Rk^jZp zT%*2Q*NUzprSe!B`6A){?{(^ZIz-}HS>;$+CrgCAn(1tu>%JB3OssG~+z;_AD9#@1I_n5_=rt_2)yBdrl;af|*W9s#6k zN9Kvkvc5F}>S5uuG4ok4*8*+!nTjMKiIMH0<1ee_$_$1(N9KxOmpT`;@pc_i{^7`z z!$%qaT&<%bi4=rMH*Sn!gCnhloR%+Y(@_q}q&NsXW_URYw{>^S0&1fzIKj+Pkf1mD zYLKqMqqlA#2VciqwB~cITjh&`eDH{nhkm;`42Rfgvnqe72aHyqw&=5(hKv3@Ga+gf z6n{Gu8|mV!hxLqLsQx(9fENAirEhA@Lu#^dtkdTwg>jgrnGJWLu#Cq#?E>_wKJX2z zjp=Ze&Tdx3560~5gNTfHv(;<2o2qkT404->DzF#R>^z?t%KCoMPpWSm;(Q}=AA7ON z)-%J@N*6ho*_|?vGtFwoh1DvBz5Nv~jRI4mI=SGCm=zR83?=(+8Tx>!7#ul}FTKB;HM4#)j zasGCP@_m)!>^WBle|$APVAl*!AM{nsV?7irANNg=7~7PNoha$7_n*pS zWMz+G7fyRMvOsugYTO=bbdNis_*fkNsYVi$J8Vug_HP%l{CU}9PPGh2{3pw^vjrSc zO}56yhQd;xr^5BsUu9=wsGkY&OtYO!f?wO9E~nK$%g#y~_DMB0CRv%V2zbI39((9&kM~@CzPG@QzoPA4H5c$e;qyeK z$M9jN5?4;G0N^FN^x9_REL6W_<_+tu2w1n8OBH<<@@T5#cwSxQwvk`L73HV?u!K)M zi85|J<-N(UNyThfiyy+QiN)0z8>@lqzAD!>rY`{9 z)vR?U`ny7(GO;>x5Ma}-iN}S2{a~K>A<+5iK4$>li`u_!$5OxavwHoI@c+!YG0RN2 z6vDSkc%#Z!8u|Em{*s@${ak9`jA`nQ3Wn0pnHlY=wB&>6X?34NhKzkXEr_k(oek+X z7}5ReE0kHq)j{j>rDiVJc*ikybLkK<2bh~r&SLAOr{MiC4!>N##sp4DD$!iQC&6?# ziMB<^REfPK4UgERRiI)!U)9E2<~$?hVdMLl=jF|KM^4p;-C`|Al$$>_Q5K!67sdP} zzU#ez@m1wR$E!g(vwXb6dSCeyM*DE<7BJ&k;UrQxuQwUayD3(ruw8kc0O!~0d^hRj z>ReDSWD{tpjBq*fp$B@A#}KsF=d7S=g1;>)Z3sHiiKwDi%{R0x>_@7$!w1gNx-)*r zhClJvo~~&PgkC7m+{ewY4JoW04xH;V@pq8zuL*QbtFZ5HlbCib!c*Zn-wQMSwQ9}h zGM@vAx|uv^PE=KN^d2kBy6G^NPF;_4@z{%kdtbt}J8f81YO7ic_yYdTCHNK9B45gU z2;l|s`FO6|YCa#Ov&Yp)@)5av_=rbOmK%RcdMn9Fi8*@Mm36QHoz?AKAuv>U+#$kH z4e_+^W#LOaXB0(|tT!o-+sC+~|9$U>mnx_<3~B{w+oJ zfZXVK`i)NP!fkgeiNGiEFt6Z{;NXimBmg5`RXuseRK{k`*YurD6t5xO>M6ynB4osT zke0R(TJ}FRYoOJO;0>omMu5Too=K{T~Yaw(q z=X{+Z+GCz_MCK4~ev{wL)2`abw&2c-)wzny%ch8q<=UWz$J4QG#)&j?SyzY%gih}- z23=X|$-VG8R;US&WGGKDY;odE5ecJdq`iOr#Y%9Q%(pK{EvNniwFfP=V2K(cGJngn z3cP5Q|9!98XxY_1(6Z4F9%>nT%Ao3jchJ%C4@DNv&xT8H63=zaisH^cAE3~q-=43l z3*~?ZhPG}j`yA4=Hp zp_YkYq_RP#@67ce_q&qHS#~u~-$}D@zDCBdH-*M&*TAWX95yAva)j+2?%W!R^l?J5J4F7+^|(T5l#Q8ZskFueUypqCiN@FNqKo<6S!) ziL9muZ{{}Cj8TE5!VfOIk^2~FXA42&$>Q1#HzK61%&Z^sta_PscsljB&z!I*@!G#} zUoL5Jl?V7?iTVE15K=d%z1dul)JOBHpT8JOIo)=R6*0r`k^4~5fw&Q)4Z(*2PvZ0A zVyUk7(tQ>i1;WYaM`!ro*vvRR4@Dy%H%#ZR1f6uwyw0DKObL%1!2zm~h@?SW)4n#K zsj9Jm@ols;M~$BpFz3y-YH7{+(r`8!I;JnY&`t0r*BXu5oUYhw37EVWVvy#H;}1EoMiB=jHqEfDW#6X!UV zKTbLXx6|YeJIwbt;C`O#u{81@BOP~Z8li}mMFGb6*7JF0RbX@aUT6uf6RJRJ32?_@ zz8=Ic+>QY}9;aB_Z@l(}hJtOn} z_lNFPYn|&NOBbE3v_bchf|(!FM-%J(G6)>coxY6(XRUb$V3ehcA1nAHA2(0ZJ{eHE zk9!Nru-DXNSiN5$vocLeV@w=yH|PJi7~lCTMqcAux7iyL^SFNF>(D*y^~!9#Y?(8v zNo?JFeaPJH?ak%;-c(11y~wAGu%;-p^yml6mz<>u)(uvG3wqq}`b%0~<7RRP2>OC{ za~AfVEt#M6mvmU07hA5i^nD2T*I4(!%>>wcR)aTfUOJD;Y)S{R?ybQuv2P+RLds41 zl9AjIgS-v6Yy;|((rRh962#CuOHn0U@SrUfQP6>9;~U5i&35bR-9KIyCP@FfTO0cn z>Y7f$a*D$hl|2zbuC~!3Sbuq|QJ2ikI!=$?nljjW@2{9Plis~kj|qDt1@ zz5D4YXg~MP@IF>7Z*nrc&QorNAuYk=GK2aziRl58IZB_k5;RcMLVIVGBik-IT?F7Ct>aJZ!pO3e7~b?Z6j)79R?acS33ig1f7vtlj! zK6f0Y7A&5&C97Dn&6Pb+ATRa2e4B^w@aBhP?@dVOiE0$k8iE@9+{>-p6@T-f2$U-PTnZIEvmm29&pbu^CFF9>Q6F5F0oev9NdMiXCpPf zQ;8#nT%w&G!-RV!l{S;@H*KLh^8|NnjWE!YiVaA^>%W%sr6EZXmZ4WE;;Vc5$K_u1 zj-1q3I}Uu?j{eJ|F}qIf(L3OBSs?jma(xs4t8CaF0~b`vF6x@e#M#RxCo8Rr!OHlq zKf)dn^kvBNfL%RowfqT%eG*uU&7JhJd+?kZZ0ZEs7LvxNPp^^ES6iRHb3d$Q)@O;a z5>BEy9rB`9x4IK{G*umDB#*EO%aS`!)|z7EZq%N)(S{t{0#9DbA*|J1R{T1GbS5u` zXj(@&&S|h(Xfe-~h4LWLv^;dIg9`tfQ<{Uk|L*=psJlKzoI7HYIaxX&rZ0RTOfX6xCipM6=?tduR@Xzadr zScLJN<++a|2P@m3hKRO>U*rKc#+ojT+bW z)2LU3#|*HAF0WkN?~17EhTJSy+Rh9E!aiL1(u_<6qffr!U0y6%jewzkg|ZTC-)?3S z(UVfNg|!E(9lVYi%Cj_cNWAWVlrz8tO@()r)ftQtyEy9LFon8EVc2D_L3-#89U|Sb zV@@1W-LxJL>o2+yL-yJXNBTX8d98kCQsKD#QjEN_Zy^xepXb-Y11hOuSR2E%XdZXB zq#!D9z+yS;oS(+b6a=Nf=H$WC_UbPPPCSZ1RN0~0XEJf`ArRF_!dd|JuqsCgo*Y;Y zJ|tHLk@^A=cdYCET^q_ClEKnVrqCrBX>ym9NoaD&cnIUeI4!^5Hwmu(7GK(fu>mgj zbHe@)>g90Kh^pxe&)y|qD^PMr+XmOtzUqId0psl>tuzj4Eepjtgj&hRIsf>gpGq%q z>a60_GcR0sBve6U#7AXk2ZffB7O&Rc&9A&6Kob9D{R}*e(#6`@dncdQ2Zxy+B?Vkd z7UtcVNWEOqx#7s;VD5GU3|HAcQC=pAh!G0MFCQ`uKT^uO+mF0lp>;UF1WR7!^ys@@ z1Hr^kVQcyEMV^)kjg}utS^+r&R3BVEu&;KurjE0daq+unAEg_+2db?f>XE+xs2Kx$U!zwQr`R#r;0{ zJ*n3~^xbKK`*|P>)wxXi&^fo!ubsk{aPx@-^YTL@U1MD{A>NC9ZG-PMSjgOj7`+30 z>U=TU)5+t0-`rWf0Ka*)~^ZKWkt4QMF4Nm_DQz%-AKPToy}RL`_jhR=zU zP5M$a6fU2A9-5x{DU3loeG;*42^LaxRY>xoN;Mi)mWr>`4O;5*;IEg}yH@((Qn=om z>Q#zqC0<~^6AkBhn<#^qi_2$&Qyh8u#ieLf&XE62pXw5l8ZvD(SJRUxTM>TIAQpwv zjIFOZPMf4Xco*&+aCFS8a5h*~L*x6a0nyr%&fvIdo|bY`LDytL#m(8?TJLKY)GEde z2rRh#1S4>t0)pq|;)3I`s;xEe^CHG0g1hv`fU{+52}hUL-J-k%N*o?sf5XFmZWm0V zl0>5s$hp|g8Op|$ERm+%X@gqy$E^Ck856lg!E=NDgZC7BVBjBUGOJNL73=o+-d zK4aaCME03Ns4M58W6CZE73jBZ;SHg#;T@b$=?O2<1lITwV^S6N+hmMHqP+( zc~t*-UEfG-ThJSR?pQ0f9wt@gk~KOdcFE7IUbADKy9JbBsb9t~@8gcRnoxpBV^C-8 zNw9i5y|^M=a%E!z0omZe6@jS_xb?X~waE7J&m|T4k{>eT%Iz_x zllIZ2M^^R_hKE%P!% z%Bz28#Vbav1;fTcxfKSvtoL7rl0)+)n(;S|#R(!UFM<++YNeG^gbcN>L#IQy6OGgz zs73-pS=Q!89HsA`kmlM#P8#DOmO2j=}c z9#nAiGG}0H_-6PCSJXgmM1(?v_Q|~>#>pG%_lob z@Wr_=6WoG%NvGtp8f-mzNjnKj{^*i?an|@`$RfV$KKOjp{gLB{l~~dm@psOifM`>1 zB0oCS^r%m0>2WtMX@N)PSC2Li?1LCwLzCGpyX3`6k>4=k{PPvc5n!nwynF8*AUaMm z>L9M<40@RrI=p>p^#xBX?8_g*o7ZJ5@jQh;OfB-KhKziR{`<#2fHM*EHlAM%H~Lz_ z{yOhg_cR^;Kt|7pMQSfsa&eSS=#mvMCy#Zmpg`gg^qle5+7t*vHWPG`p@P%Zy>O5E z1OThe4AwMlP!4>;l38{$1oXFvFT`90h_=SH>QOHA6Lp^mtjwAXEvPB$G^T z2Ah+Kk@mS(p7}1x*c57_k5e)&fbYG=v)Mh6w{08>fW%p}soC@}E)<_=(&~{ynI5GDjMj% zalw9$G1Px*ZrYN*kCv+Xa6uIrxQmCeQiRa?S2lX}R@VAWb+IyWKVOz`5SxRTN^fz? zuFPZWcfnsT?5aK5D@Z%_zM;y$>|wo=T$Uv;*Xr-=JnO9>k8|)>`Yczd^v}D*Kmn4N z%){CCjQFqIk|1WGyv)wN#3i{`^}zknvzO#d5gXBuzmUd^zP`k^-IT>1U2(Mc6q8#y z`98khP*Jwb4du;%C7X)I86u}jc3~|*sj|xl1Px6fXpmhgSqbu__tE`uR^aDd{h*yB zOu!QhnayOoh}_X6Y(>A6{ao*gO4)U|U(Ja7I_-FEJ!x1q2#nt$$zbR;n_aD^)k2oe zI+^eyGWdbx@BVUUG#J(LD2d6VVx3))qSt%TZl62rEY`Jcviv4+JiBmn=U^9DYM-Nl ztV(px$$f(Le!)jvs;CouQQwl=!^ILKLj#v^3mvmMe0XA$`BVf_zjr6!ZDi%PJaJ*=0uMa9^o1mEdl$?|9~`#JCoF!?e=F9G#Q6L8Yr zGjmsSu6zBE226HM6dsXZuOB2nLx5y zXGW|lB7kwG2{(B2LA~*F-uZcdo$K^ z#N+Df@j*&NU6h#9a+@Sl+NeVm4=8Ck@uS{j+&08F6Ip0zdS}dN?1B|n4%w~ev)}^_BLDA6K_bf&qbcvmtPWx z^EPY9XUMDX=D#@&19nBBBjj?ZAwsZza{o`tCYExDDegv5}} zM@9)fg=6BvoChx4C$)$EsiU)q)25nmR$lFU8<0jBTw^3 z5(OdscK`2XBinF)DM991`*ccPAszK;fNA`-{qyV=PghSY`o3TGv`X&)? z4x%fKX0m$Dazz(12>C+@D=2y}ecjSk(W^dxH)fZG9m1fE{OZw(` zqh{!6jeayo-N$kL56mQ*U*>5Ic5_Ohlz6O#NZu~cI8Ew*_=lwV%kOK$%3(s?{Cq~h zlN8Tda2z7cA&|JcippRML_@WJ{LpK%Z)e7|E5AmK6POD!qmx0 zPZXY$`&2s>B)oxby7FPYVL5j@gku21$hk&eC3^0Ud7}D{r>OE*>Qg05g14ld6XkrP zP1|#@^@eV8aaAA*xxDve8g;>Eg|{L007N?}DEH<;UDctH^TzGnbNz$0G7WlH zFmH7DrG0}B4CnXU|2eGR+`{u1lJU}r`C5;87y)~^ECD;uht24^_g{w?LAB^f?bT5> z@?e6#)bRMw6+6!Zax0pf-P&#Q=HC}EN7KNM!G+gS4xW)b%~0Q4_583+9#g0GiJ!YjAl8t&3KpD z3wL0iU4j6Tjl1%e9{HyvvF(G3r4q%Ey=kMVp8?D>sP2Y=oEW@lp@>jX|%@wvy0 zMUZQlsf^8|$7rc6ySGj=h!%QfeR&4OODuVe2=Jb4C3UJgf3yG|qge~FH>(ozm7G_6 zpU+kaAkeI(4~hbIm|BI|)P%R`V$ABo-aS|9f_jLgP|K#S=k;i~j)6 zO67v7Jn_5bt%?St=k;n~+mgD|>pI~e?|Ro+yILggx= z=_I_8=}(oFUj6n`GwW7SfTGK?830N77P7`^c}hO07fd>4Lwi{5_6dq7ktN`^WM!-% z6jp@uYB(IGCL8|uy1@Z-$bbKS=byy&V!Zt}H!y1s5vXb}?LmUs^GGy}DTCr1@rlae zB3wckWTrR@+<0J=Vrc6kMyju^Ol$f2>-6Ri^J!nB(6$U&bib4 zpr|5m0MzIrpdxLeG?`m=&Wie8PTrsfZ~uGs9@zE}#|}O}kCxNOV~?VE*ML^_N6$z| zhHx@Nh9a*}bNjyMg*G!hPf*qNg#@1<_aBh|X}9l~H-Nf=5k7DK^4S$oh5K4(m^CE2 zPCQzwBnJl}lz+S$d;wxTF>VmaNbpilht^D~{cT()aS#$d|2@jh(|{bsOBk#Z9QUZ| z<#4J#u}YRO*=6}=#mYJDIxoKvFY}lGGhFw=j2NCvy{_@US8)Tl`v2Zd zM&C0%>=S9q;S&alOU9nF@@!{`%Lx(48Wt$`FvkD`%+vBaSap*DcA;K^{k2DEB8h$s@#ZBF(XF28w)wVtJU3=rXVGMVI_(TukRD z96R)P4uJVN&>W@59f}Br!14o^K?{Iw42m#>c)B0mkEH-EG*E?pY z{T;Q3-mY$SIt@2_#03Y##b z3MbKnhJ#A_9aS;FQ0s>}p{&Lfk}r<`RD{9J(=W8O29C5?{LY5lp0Qb4Vu%^!?{3;K z9lug1&5j95pwdG(fwmAeD=|cLe&35YlIp#I?jY0L!v1LsGN}KrWeg9Z;EX)$S;%CP zRAv6LPBk_2Vfn%D$rRG2($Mk+urm|CunAIKH%B0VR#``$g_Ssoj7alQ_t{Bf_dd>q-!a+)jtGnc7ucH2NV=K|eqA;!x{jQmV711mT9UcSVVU@pdo z-1THPW_*OQI_NmqU-N@3y=eYu(f4SH{o%BRm|ZKC-qx)uQbpO(Y_?a_;XsJi1uOT{ z#ci{~6#|nC#G!GcHwjFF4&JVnUEa*Dl$ z-$$%O=K0kEw>_%*IeV^yXyBM}2N6^ypH8V+IkwF%K6^D7`!mBfFmIg1b0qaL1TcBS z;d8~GdQn@`cxu~l-m>b2{GB{fs;9n~K8N|!q6EO7XG(n3OC+&;Ft1gpi(2kkp!AI5EwykwQ9?bU1Cls&j*FWS-1n)WjTPFghQA> zk(YBJ2#u~%gDk~j4=DkJ_55axwb>;&Gkj}ZbYD_pR!pXFhn5|_TI1F?cMf*9%qJ{Jm1SS)Xq=;V4k7+~UHQl5YAf#yj@W>~&r zT*QC&6&d;CMr+LMQ6Z4qv+gAa?<@^F3;nhkCTLOD;eBe} z3M-tnp857>T9Zmp82Ilrh2Yj+R8euXpa|sEsq#N? z&j?OR+s3}(^`_#gDHO=6>Q)$C`6pr3k1Ezj9!N6kty#X94GvMJ+>9`lDRtvb5i()P z<6|^rkGdnOjTx{WB#KX3PUe+FBJ4!Of12k-&4aP7WiN{JiSN@WWfYqM_)_PtBq=9l-izh-bpxPXKu zv*bF^$B05(sCSfSrlq`1dX>KJ9-=(mah*5iX`vCicR}N9&K_0W9H|Li*axqJTu2gU z)G@pF`Dj(&7!}$vSi64t9Gn$}EL4oK%}xEX8mL-QPd2|&7apmp{-J-{BaCl*gp6FS zD9U|!0z8dF#G~8eVbymldYubb1aZg{SqeMf(9Rrz(Sl|64_c&3F^mOcBn?2v@A*T+m=hX`H<1R!1#B(2jcso5(F!+o)7=Bq_!9 zdgdteycyKkPJx8xHG3!iU&y?lMRZ=zB1+8p*O<*S_PG8X`q=VMTQINpJk)tUmf&5- zvl~#FT$4_<5*|R(O;Hl|SDrT~W)yJV)Uw)m$3v6IGw+=6ltd0OC56TtomKE@2UEO1tx3IXclB#Vw|GZn1>li%QSa)ymwgUqL6 zSj#LkS<4^At3amun}Ws5f7>^b-d3R=4QMdZQ2^>`k_|BPE9(l+J-&r$W{G=d5NLk! zcVB&e0L}lnF;@U_PHBUUPOJ7QDBsR2ZMbt{eE0Ab`RAQ)phC4z<>(nWdEoi+Zf z3S%T5G{5pgL5b4RSqhcR{oC}I%+@sf2M~>w^CF?#7tL^KSAuy4$gi$Kbx-`}Q3Zej zB_cx+rvcR0)b6Z_Eq~z#m)<5(5(`c6Ze3%mmGKHaRKS4*kWph+Q&$+BhB!;D+EyGZ zZKC{bFm?$N)qk9+>m`mRii`F&>)wU_o;|;Fcq?T8X$k`f$4=}BgT=c8s0n2-F&rx( z&jmXUg)!1zOQ*N+EHE&%Ei)P{7KC3Tl;Ivw|NOktz(z||`V((HKi?oRw-yffgKdo} zMJYvpmo&! zWC}6DzIrcc$I8g7Mt$}*00&GUROUyZQ{d16F#r}E))A&xO^t4ilTLNaX5@6rfk026 zSVaVjN&>(x>V>93EAcl!i%Wbb_Op z1&*phbAd>Rnr48V(F1lxO9c|R3u<6?E7u_^&t+vLr{AG473yT@4gpni@D{esoH3-P z$Kx^nP0r|PJ~(Beua8=V^k1t^hFdV9?NpO7hC2eesph{K#Y#!qG@<0^8D^FTZEDH2LTQh3+PPsqcNd1G;ayoxMZy?N8#0!Dnm5!zDoL>6 zr~21V+p6!y{(qypLAVRCL#hNX(j5u~fIWE`NkilELw^2f0&=N;&`FN`s)pc`A37e1Z=>znZ|aVzJ&3ER&Bg%>1Hn%p zYEBWOU1RNGsC%VoN6zP9vpq1CxOo@J`W?%6D-6^?7JAHOg`FGtDLb|NaKyjFPF7g1 zMcc4XDnzdTHJ)W~5GI};%n#-_x-(`V4AtLw@5XDvpxER6eWN76qYx_2m`aO4|9GIZ z4;ArJ^U}@)zYBG*bDH#OAEf#|@1oGk;4=HD8-l~W{IFjR;*%6}^#|QF)X;($ItoSQPJMafTaaPu@5x zvtR4hdyAh-LhoE#nciwYL^|y(2(f=v=GN;kcTK?X-}hFk_^PGoQmnVA`$%NOzw7Hc zMV*n#MC}yQHC2yPxrzRH=>ZD1L-8c@jw1`3Lb6RukLqrLzR~hy!nDB>+K8DD`yzq? zoEdQp&XXoi(uC)xWwJdQ&>a2g!ie0Gxxk6|$DwY~i}G+gc**r3Uo$ouPJwv#EI= zD)Nr-6;B1)*6k6ve>m7JL~cXiTMXwSKK?SU!&{NWL~(bhk{Y1AFUzG(&Q%Yxg^#}z zwoYMMk+v7KqIKiYf+IcNS}x6fy|OJ1Ke*M?(el?$NCeQR+P~oz=YZ4%8id^^>l%tt zNfc}#dm;-6hegQ2aZDWWi<+r}qbK<3*1BGI2a=^^8Z(&@KN?blC#2$3UVq(CrD?RA zmI|y;YjjBB;XE=V1%=fAxr`g_TOMPf^q}OLiL~bvuB2~-gB+{U)s(lnTy(UoN66CN zy+@j|tL=&inGrYwi-^2(Tqiu~!b~9fliyJshfKOd91}%DkDj6@X!UIG5Y@cJJ9!vT zp}qjbF5o672KD6W5TBc8Nn5*t4mSj)|2;=~UAu3M%IOM75*NycR=;(gk$U4?05~#w ztZwit6Kn&AIM^!~RCVZ?xaY{6yf@mdM{QPD&M%F!Km+qQua(7v1<30TRT?7;Xd0bf zfBn65FJW0LMa)p*v`N9KAP7InymM>z0(~tB$F%=xemn>DG2}e}M+K2XK8YZ7h=TFs zdW}4WI6hX)xsfJvdt;Zj=?scPC`HudpQ)BRNETLI=_X&wt+Q`WyMu2wxm+1=6fcPh zU=0~eh3A&yYqC^-66i1EPii9jp`-=jyuAM!1LNoI-vStUg`(Cm&>E+3wRckcZKa6g z0|GMp2~1iTBZlawTB`Sr4Q3=tr;H9$`~3L#y4I4{pOFR$dDPY}*x9n<&CVHCjy;D$tBX_*L)g@E zhr&jUWaU;lmR?5?`uB58q%kB!?7q$Ic!JWZZCwDnSA5lH+*5fT1(|pUioT##)oH>0 z=wK(-IR{uM-kFJs2nu>>ZgismzTmUOL{0TamD^mV@m37~-P_~)Pu2))3KAySzgX?o>G zb<2;Ga$AXgpn^2E-l8D%S$HB=24mglzG1-eK(7Usy zeQTx($ZY|&Qa()?Ji!OIdo#ETl)3$g^nklfL`4UMTx+%51v?P?~WC_aqhxQNfVlqJdZ686&?IS2I zZ)(C~NzH{f%$sJNfbFKoarBd(uVYAJ`^CcmpfRbzTH7)&d<={-f(p*tRjv@2T2W^vekAy{ftX4?|gh zrtDf-zi6pGk@`r={Y?dw2?}lA5s)5}hG4|8ax7S(kO)=AoS|aaPL!byqs}PpaSB?{ ziXL#a_8rRPwv=z)zOAJyz%6k+jfusL{VHX*h-&ExX8IpuCoqh)2m}VmMiwqfq#>PL zSyNH*UZ_CeBskcA|FnOAau`B~(ZPnUx=tWg0}0>MrMxd`tdeYB$KdBaYO1%w0f8+O zYmfZTZY?2iLbd*X@6zk4WjK&Ms1qA@2%NKa|W6TJB1z_#in)m3SORhR3mXJRfV55+jQqS@VtoWL$s!6|rcgu(|Bzk`a z==;|zjV5jL4+md|ii)&VecFYg*j<)D(oKBJ;l1v7ZtOwO9ft5oW7xNG6wZP(Isd4p z5g*M^=#QM`+E7y7ueK^+$)&kLC-TF}kMtEQ&^I;c@4GGvc^>bqm_z}~Rg(VFOmf-b z?|0xdKw&hwaFXm_5ot9OP46MtHzv5bf$5dz-nyO*rx;RmzmL?_ z;{yX^*A}iXO^OrhCy09RInE8i7kjr+IXa#9w$S7ygB>hWT$;Fjpzrb)IaJy>3I{Hi zJ^E(NlCl8X-j(l`hkc@%C{#=XaE=ava=ML~oC%J?Akt3{-(jLmg9kK7(p0}i<#fO? z6wjAuhLL_WWHj^8ehvjdsaMvEaI=%PYE)MTKgc}$heQGtPrYpE&s2Cla)$@;O@cO* zPy2WQ@MbAi`9!;9ZAWzf)2D4}>r9g|oRYNo7J4|xd9=$IBN6dnUpD z5^r4Da<(_xQ`jXD)11$6HyzPO4Plc$mVe6{@KY-Do@n;ajRV%Hs0FJN7$wIOm^j}n z8lrK?@d=@{-ATggx8~Qp;XnSkH}4I~Ed>ZGD~?OQ&8%hCNYnr-MPSG)Uw9ibxRL9F z{)16QvyX}Z*b=`T3d_LLZE`o}R_MAVmD4e}1_nrCVwB>1M!87}R+OF|AYKEo1&(d$ z?WKG#AXq$?mSn$VvhhQq?AXg7KuZzm;P)|!t}^(v=JBX4004IGOkq_1vm)|hxd;#J z+hNFOf=h}X!L0(vtGMat#JpRXz^m_hOuT_c%ixor?OrM|n7#I-FgE)s=fx8tY zyZTEaglVWK&uy%#AO>&OZ;41~UYM<)7!*A|-1nzjka&Nx&9ugC+K(xS9~nDX`WR9f zr`VruMv5G=@oh5eOdCa77&+)`WGf`1*h4=$Jq>@R>GUnSFlHKNe}~gY3c%md!DBde zfIsDJ@9#r^`nm9QNe$(G+2Nt(LTyr2_;zB;dmATv>15NWF-9rG_$*LW42tt}>KyX% zZ8UrN4|N~m;7xgMrr;CG#N3B)8*w^DrlKzEeGY>CnR|y|rpyEcU0Edwpub_bZarz+ ztJPI=`mK^->ga$t$?7A;tE;XqGL)uf$>Wb%#dNL^wlJ4nb|gD~2jq=tG8qx?v@o|E zO_Qaq(ob$}iMJr7 zTi3FfjenWyXWqob5EZe3e$-i5TsAQ+*EM}QVqhB%YTL05aE9Hqp1H$>DAvMsYopOo zOuG`k5%#<>M^8${t2jiEuDhf_nB<{C?zfaF1tRfosHW3{v&w3<4$BZA;w?WUb*mJ( z3nr@c*Xfahqg$&f->cvsoIKv0TivA|>h=fiN$G+6p8p7qG<~feAAZM8qouR2)g8{0 zp!1UlFhrJqMv-N=-UEC2(?`PU;$*8ZQoO*2uCd`{<=WF@<@bP&=~Dl2hHE2@=4Iqn zjj+vn=Kr6Rn+DDMS?GfNQm#0>1*h*It!{vXDR}g!{I^atTw{Y0lp>6Z0q3fIV zUIaRk8%*EkT7%=^m`Qs9Ke!LL9UegfIF8ZhZMdsTV@(siu=8CCVX;o;S-P3_EkzH)C0#*52{_UG)~m-`-Mn&aYe?0ci95#lxg=>f{R3)bq^(H%|p>E1N zE3UHQtH2e%l|x4inQ2TL^E1r@dx#rPn#u4mv+81Q!X!=P`BA7tzo94C|3#oGQLP_<)@5n`#TyWU z1*sjkyl(?)B^}6x%HVQaG;E~q~JSDG)oa^ z${`M(iXDeq=o$59g84Vy0)cXVX?D_oVb&WU&8@;1!C`!NLx$VJ+_Q<{Yh9U{A!QST zN}->~LD}tfYBx`AS=XG*Zv5Xn`7;U}SL?@~3gMMOa;By}clz*RT zX6b!JgdBi?>L}34^gXECm|ebI^c+(1K-6^TEDg!lI!LT7>MqUQ6a=pOW`w5tq&h&k z@~ivT=HZO($^c*nxw=}3@Qdv}YE*zMwCx$tXSm2fao?82?MosMcr!1tNIk3Oed+*6 z^ByN}3jIhZU+$zyYBSKZV4N?#D3*&r48;ZdiTba|HXTVT3=EJCMy{2%)m!$7exv}7 z0x4q8*J+2sO@i*d!B*#awfF) z=ssF|D#dlckT~~t2S`b`d@mfTC9ut&@c=^O0RPibu{C&P*QaTniEYAxuOf0mB9Q-$ zAR@zL4VdsMP-3stgC3~)h1)+c935`J`7M!pEAl`l<+d~r3^@JEqj2K)v-SpuIhAX; z{hO!c{%6m0|1Bws6FVzxs$Jg*SI&kbZ-uARw`*vmk-V$alRtRl2ZHaY1_VB9ASUcz3M{vExxF@ ztD@O)V<#Qv`-|y;Pdm`sTo6Fr-r$2kFxJYQODiC{AV%-X*x+shX+cJm<44Lel~RYu z5yFu_GB7Z)`j(0POvOpTC+@7UMYe|kU9;HJ;n|J2>F*J!voH2p^;Pf?9uV!(VjN2L zikwr%b|%V`EQ7S~tb${5x0CL7T%2E2&F{Ytv*_?{AlCl{F05f41C%={_{SBfMg6n) zNN=N!P7gdr9r*$5F<%PnE(o`)4^w$y6F6ji@CGSZ!1PNKFh(A_B+CAhK!bt%G1&cx{;z zExNXP=m^6C`oZ74ZLF9Y`Has00(Zfi zA~`q%qEX7FC+_TEVbR^!5rf{K#t?9$#YsrKO_GCBA*SMJ<{ncbNvl;XAwrJf!sl)r zE%CPQw3PC;grf$rYHM&t4N-?+zcg1iF<&{c{&$wdrZa8}9%`~f=>USAy+fbYkV}tL z0>X{sjq~rw_XcAr!q)!+bmy$bF+j@eSjk=0;M+{xt7Zvc*3dxfWJn6^9Vv_r4A}LX z=q>JjTrk^`mHb6hT@=iFl72lg;;MQ{-e^y+-v?Rl%{OX-0w9i zVzi;%I1~rJ1#*gte?`dspzCUzJn}GoJgc96{h$b0NtYfe5n)X@#KCDH_7MYAmly{R ze{-7Lk^PYM7=kz^Ky7Wgx2GdQSi`^eLCCdrx;|>6nP$uDRA$mbIMb$O zl%_&XD;YYOW@RpITAE^uxgoez*0fMiS-4P>Wol|=skxz9Ib@1cD!GD*S)zitfg;a$ zu$gz>@A-{2UE#U+o_p`P|FgULkA-u;zpZ=|l1c(Q?j~^RI5s@+uva?!&A`w9PnwDh z`5!iMWeM1ESuHS{6)js+xu9LNTKjY8wyA34*&Nc<*|8PJ!6M-_MXy^fX|m@g560i|aAasTtL2hsG|2b+fd}ILBBI{$8`rgo2yL5NWF8}5bS@1vh zHm3Ri+zG~CumwvN8y1qE%sP;NRz^<*m5YwW1@yz(jEnp~-dzI1gTQ_RWR3r1a_#-ct;hhPuF)wLZ*PRIwCnw?>OM12P6?u_`@LdIa&V z&Nduu;#C`KjLuCnX7*Y}tNcb}7NHs&OpU287l9iK7Br*De)1bOt9y_d!7bAUk(@yvaz0s-s>~n~dC2`>eG{`eZ&c(jo8K5Aw zY}q+7^06x6IPIT(0+Srl|5sx>bjUeo(_)*#%I_i&QJ<2gphq>#$C*2I;ws8vu|^v- z3Yj2rx$Ae%HoH0W?PVo0(c6$zz6`vufxYSGKj)9;CE9_K&KZMQoDa&p+fjN*dS2D2 z?9S|e7t>Uqc;%m>ETwlgE&j{}ekQndPqb#H`GML&CtukVoA2|?Zf;mq2~LaM&WG1l zz^UO1-dF72{O4~Uee0VTjOXj6GdsX4wPakeV`RXtsYOHLk&_v$XzCTei!MYod zWd7~62t`}?j{$FkBrP-&wmhglS^Cp+3i7X(^iFwfWVoa4#{G(!i$4gbBLzChX@J}r zCD%Y5{WMx-6BQ2XDx(uA-#fChgO=pdwS6rUHyj1DLA>P&*-)c+3?I&W-#+VaN5bf>2m<-I&6B=P43*h5HQ2kRVb&3{bxc8pYX3WloYSYsrZ8n zxSsrViqgp!_?yPyQBho;7g4n13AW_Z?a6YnE?AoSI1@lp3XSG zw<4XzhI?PfWr0v~7g% zU5#fg3cxLaNZ;yOHS_?(r~_vKzB)R|?;?b9SaC?c^_tu#|B&>5raCJb%&+7rI-Kgh z2)0Rlbv|35$$=A8x%nym0!(Cn`0sxD<+Ex~C=ig)!fKFV7Wg`hhkfq~^VCdLarzF? zA|vVo;CaSeao+Wb@r>T?^@Angfqm!y*}Bg_g};9QejHeKL8~DeEZ2)M{wm1Yd`F|7 zl8%BwA*F#57eBjv#Z1s7hR*}ljy|Y%kaT$wFu#gXc{IpPir<36^01(b-V_FKodY{f`c724p&(dB4KTm$i2hy(UJ9|3aIFJQ>qJO$x=_@oPfAyqJZ`j_LfQq{uop|c}>M@9SCTB!L=-Qy8$vq5Gv zvMtp6at0fvQFiP*6v8)RFG4vrRe|N_;GyuCO6or(XJU_++t+34^c3Yl(6aQT8ji^? zHF^_u)V)4A^zBbj@`B9FvC(d2>Bmj=;sR|S>NR#NT74GMk~EfPXbHsYb?DbWW!-Jf z#Ua7a_)gQe!`PNLwcL0LG54ek@5f+7K4F| zxfYNOJT0eyZ|#He&plzR^?4Cm>x4L87qp%mHa=Mx$#q0US2}(?{Jj@BgPcFeon;2- z6|ki}psJ3FhxQb0kgx8I+casEzKP*PKb^fgdoDVH*1vkZNeW(o3vQHBA2)zI^fniN z3}*>?bVYu?uJ7{(ZeQoeu2BfWb#3b&C{JBMD!OCwAavrah{zXQ-{e2`+jp|Xz;hM` zhMn+Z9@Aw$FznG-3>4kK6bgp)B~slgwjgxkClP;!&RU-*IAn{vJ250xxZGhgnYK>m zpNC7xn=bWWAyBVJnuo)S*eXL2|1UFZ*^L0X1<*IDF%5ly#X+kgz6|Cv+*o?$2*jrg zpW#BA%usdr^|Fd`gedBY0WI}ZnMKU{)IpC0jiD2n)Wr%z8H{Y~y77U?KiSmiMzPsR z-)0VqpwtSGckN?g-m|Ii*!4?tc*LnC-;=pLg*lS+!MBk1%MQME51*0ngeTC#B;q4( z;+0=dt20?eIh+6o=d!%aOyj*Qc&F;k6P|JpnbxDD%4x}FtA;Z(+bQIpMS=3!F$_N2 zeoC3SVhFyNnIlQs$KrqOOvC>|>Nyg%GB?oEbDnk`L7EoY)?uyn$9?s8VFN+GNr(Bc zN_O%-2I2Q1-{pvRnPo)oL@Wvcz|;%Mdj8Jx4<=!?b`W}v!``xM`@)TowsSMY7r?pA$i_xKC%%LP6U z65IQuD9p5kz;)@2if|Lz2GLKeedWe8r`4oXT`kICcurhImUT7!E+qFl3nkV&CAS$1LC7qQs&O`F{J)wOK-@APsnXm34v?qx%iC4 z{VYpLgV>v}HMIao5rmdY_;sCu&iSHHhbYJ=_&x?=Bej&ce})Gc&{XYv@be z5Gdz8;R%hYJb3A+P%r5$sgR-}W5%@Z`Q>d9vPfN7%A2Is>&@kYi8ZoK<%~V_%f0uidtgg(=%x^1>yo6U`R}b_rzqH=Z{2l#7gZOrohvhRIr654gOHhSMr_dlD zMIaPuBTjFn|2{W-xVhEa$ewH_B08QMd>i_n6c;V+TQqS3OAx1uAM`f5JdttncT z)!yp&s5oIp1Tu9puwUSETu#>gR&O`mB!x*_B8l~Xm z;W#IyJ&OY5Nimd#KkbT~ivgH&rTY;4=eX7r@|Vg1~rJsq5RVJvVoSXdQbSMGLFr+;IA`P?`QkY zQ|uE-GBcY)PhB#9iX$39&Jf?aZTncrs=!k%?0TI>$ohquLijqfQEVVPy^odDmpmy}_n3JQ)XBP2GTjG`1JcXP#!pHH3GV?@p zK7x!OA<d9HaFD#je~t2c{ZZLFFt+8y(1TfIkPtZ<6@ zjJvxugd))jJhd)R{>l6#Sxql5fK;JQ{Xq`CWaruOWWvNuftaEt^oD#OMFqn#c-y;p z8-1_G@;j7Kn;T3zYvy^}^qH{AdF?LZcAEN{0SNE}e*4<;n!5W8)QkYFj$;0^=s|5R4rCP16F2H1S8`Em{ zu{d{t=e-&5W;AorW$=BvA1Ivg%Kak#QL^)N(N`K;5epTTGBl*^uF|0s0#5~?)(=qR zC*_>ItRnp-{c#cti(78x7Ft5Bl9L&t+lz&#GRnMzM#EMW`3uAHMMt zGUzP$ZThm{glRiOVfH>Pt7hn#y3C5#b_UDj3lCG)nNssPwbN0@^o($qbap(lahT$J z+wbZ1vahuR2gg1|Q$V^)ISH_mMS#_Joh!MBz4o*3 zb2`%+_|=W(Q+~Uk^`f%eA1PSsP*$p>Kl6o7AarMYk*17qmZT8r)_scc23vof2*q!I#Nxq2VV#T&kC zFUyB1^+&g*<9u{gc86ZdFGC%IZa2*(EC{V*__psZuhPz~>1$9DUv8XTzg*AYw)=Uk z7v<>ridk#E&DMJDwHQi!OqnXUbnEN?YQQ-+Wv^x`LLKUa4fvHbIY zVIM^8jz~FaxM+L)ndFHGlfCGE?J)TZ>V!Qc*x@!_Hn+@3l1{rai$jDYW}JF43|@pTMm-qquZnJ^PwzR-UuU%(oL3w(WqnF_Do0IvRlaA|^D`btp16wBP zv>kXL(37yuENdibk|GHgZ`BD;Ij)aLuz56^GTF2o;x%H_TlNC4!jF~_e)UpgS0CtJ z{A9+wXJLii!!rZqh&D~A+tzA&FA?J8YJ zD(dgM{Wa#ztX|8k-^pD^A8ek{amR0qYz^w3neTzN&e0u_RLtxhb@!gEu-R&jx@V~M zvrhrvGS)F(@1yUnhB&aWKP6e0_%GoKaj(zml~`H*oUvr=FILram&7{Jij(#g+E$!y zvUqsw$%~9LGx@I=^3V~mjimIpO!T%LJtkaDo}ow^9(0!|i_)r`Lcb1(dOIrt)QXoV z_ZQa+x;vB2XZ)tzyO0!lPa~lOh`4$Lr8Z@RB$C#LPIv&I7qm}%zyAryad2LaiE?LE zHF@7`DHp<0{310<$>4b$C6~cB)Kf*2hR_KC>}%4Gb`;%6Q9rFjIlo*8^v;EJiL?8- zRZ;IW)IVD8)BWWF$x-}Q85~%j{VbrJOLr%11yPM9N(g6u6sjp%J|P)_dtS~Z>Qhs+ zw+EtPlgozVC^Yz#pr=TE z18T&Kn(uPXUWr%Q&Y=#@F84S>R)@H|^CKABnK{qS-T|}y#Lf7NPO^e+v+eJN(v+I| z-hyu#io4k=Zeqp4zB+o-J2@!+%-+dj*M37jEm>>^db)}A7v0f&2G7KU#$yrLX1nX? zl{!P|abwiaEjv?*sSd4#RbD$W!tS9NoHZr>>n-ixgU0Bw^b>!Ae#;!GIyZuxZri|h zxK4@l+upsIK&U57-_A5I9H<{=y&16eIXiVdqAZV+6wxeY?U|WWZf2)^@1QHohc=b| zx+QiLRwy{oHJe=mVE$I3%!0Z~rUo%kx1@^g)+k>2#pYdZ(K%vAP`MtgcH0wD0@;)0 zA1MDr$O;dH`iLlLKJFG?xtWlt3Rp!eABIe>K&&8<7l@h=`XH#bk@X#*T0NSpqn`Uz zSM@Y3;W>_bH9TJYJU|`@QqX-(Lz#)9#Hnavmx$pZ7M)Ts z7G|fQ=W3zU+#Q0>;jnRfQR%IN)Y9G-ap1r&pe-2*CVh+_+wo$?Me+^$K=tS=E&{G&&`=W zun(Q81GVATU(!(-^M|BSMm?_)ukX(yQ@q+bkyjIR!cOZGc?;B>_uWWkQ*pP=1R(`W zGX7#zUghQAs+d9YhIdI=y~bf~*~QmB`UcP#PvP_OW7X?+vBwQMoo z){nfOwU1@jn3l7b-0yXRZB~HG2BCVQD97Rn$?HDbzGN}JDGxxDz-_9mfV)a>4&$$L zYNul|nxjr-*++cT4%*ij4zdRh`u9$38vTrgH19Kegs@RPH~$6>i0a(00=uGVSs%6*Tvw;jS zP;#pFw-4!`3?3c$BfY1HhS#u`Yb6OAyjYwaW;UmqQh}r6%cGv~Y6aq?-0kG{9Ld<> z*f394N)E5xB$MX}kkd@ID)9LrUWxlsexrJ1vzGv4tjfVRDcLIQA$L~w*}NQykcE%< z<^bjHor4nnUiP1TI@;^_r@zNM`*FMGbY@P%7y*&^W2`fy>{Aut3yr?gpAUW2S^S?u zr*o=;n5(Ugrpy zXY+L11?tg(jm)7hSAV`%F;~l5r?pI*{_%*HfHPGE@O->|6HM7dXL2|Fkt5-w)tjIa zrS!hDKwLE=OW~dG?IoaS(JI)zR5EP{*5RaRC0th}_@?h{vsyM)2~ENz{Htz<`tNMj zGALzk=af%G>Z`P6x1dCrr1Vo0TlK4GTkL#~G#s+2 zQEc6Amy*r1M5*;em*5QurBSR`61KsU#nDqS%Cn(K3OXXrs55Z(pmO43!na}ryfSMa zOFGd0{R9~*7FNB{i%#@nflj~&R9VF(VM8`ORXsEpEzGo%bp;-?F|$_A&@;Xk5{X|e zT+iI_IgTHZiap8bHXwvuM?W}+W?UTIIrirFiYzE;A=PTX)iQn&)!~;r)o4dgZ6NZy zzR?KyMi@RbsMS7cRjahWZ--GM`8n-phE;0D|ws)`kO#dhDWDj$#46p~9X)lkQh&!$!a{f$vVs5Zxy zYiOZSdXa#vM1AURP``F)XiWu-K-RQPp`HfibowM6_khv_c0OSm)d|`XCfocP#p&L$ zY22-UTxHUSZ?b7V^KF#3#m@Kx(Q`-{qDq zOD^bc?|B4D>@Q~&5R+=2%pbJ4H0qPkcJ$-MlsZFMQw^>3?!WO^DJDTYooYxc=X#LcMsV~9{VQ#m#6|zifSB&;=fcJ zeGcsWhv6vl`!W%ji7B(dA_fL3-EacedkMq<%>{q;6L)OTN0<z2VN%ti0uD;lf|zUAhF*!1W533qF>nC9{1w5R#d2YI!O37Fe#1 zYCPGi6P_pVwJ$>qWLNp8Hyb%`!H2$lZH<*CIfcW9GMB}H8ynM(kawsV-*ya;eMw#& zdR>_lQCOg%ruienZ%?UeEXoZ#h?KRn`hudOT)JCNQ(n7mZgIQS{5vZ17!p9*c<=V2 z^NY2oPQ96_z27~^-97u~o4;mZUu?WJLx0{c57X{0tgNZoxc#-!ls}hVN6lQ++S-xq z(9~|8Sk*vG6(+sxjk2lgKGD+BBJEx>@uKmW55_Z>Q)-_3vRyi;gA$pXx@n*joc=nN zvHO07%R_Lu%-GoBXZJ3r!s>uEDLCz{PQM)+p56v~_R%9}Rb(uP;y4%TA#G%(Hxd1Xcd4UB6$zb^dVSAzFg;b+?_4rNt|bftq{UU{-rA*6L@Kad(z6B7NaKVQ-?K zC!1=^{3LxX*$J2zxqnq1-0MJnG~DHx?IPsCpd=Y0M6abU_o_ePObTF!k&mgJDX_x6Z6= zdhUzyz&tz_H8+)@pg+j|u0;rAwFXLP#idE6GpxuidZGzcTjUuYa@#NbTC#RMw!{^m z5!Si?^r{xA5BXHrJXDO{3e`cqfLZle%?}LBa@5wJd(HKJMT(nm$jj`P_5Br+466=5 zW=fOke^7=l7;tDIDd-!l3X@IIPp=yo8X%R*?`t6Em}Xc7-lg(&(bNag!NQDqM`Cd6 z_BBbJ9mu$?`It0Hxe~k&M86iU`%^09pEE^iNaS?%-7ke}Moz!N#Z%r*d2!!vd*6l! zxK}&zwyvxL&)KcJCjZRt{-@mmxX(Xk5{mG5lm0iYrGoM&+&Ad2W$JPuc3M zi(p=ut7Feb5qT*i%BIiasWEvc>(%C^E4B_a-)5H_z`x4EITUb@;9sTV8jh?I470{p z*SSi|4&Wp1;T)X3pSMRp#@QO9Q3n<*UFu7A>yL?+AMA;~GQ9KG zct&#&aflRL29XHVUhZlFlELtO1N=X)=cRGL2uRs;zjgOxtL)80#0TqW*(jvnE!! zsP?0SZWdh|Xz8c z{duW!esICWxZ;J+G=Ff}S^kHl2t$%DO-zf3#`2_+qW%owhkJqY2P7JW>EacK=^kfM zj|)P*@60<(R`+3jlEt$VMODfQEVn?i!6h!ii$zQoUuIHOvs5w>H20-G?cr9DshicME(~LEO8J0`Y@AEMmx1TC&Td z9QX0Zlfxr1Ey?m|&E(GXu-h@iN%PK-2~P5HCRG75p)6H0b0oCS6u&zBE2enVLfP*m z>$G=1`iA!BWZP}AF;-ctX$!(D<7w8(c+kbf41~9G4=A?(ThP{lS~iDw zgYCvje2gn-NMoOH*+7W66mV)AIg|HOA=hwDYTp^Jf^68m^LL)w7jVjntPS(S`buX1gw$c%5|YDF!7fnqfmv z$XMi%WJ~z7JG=hvL5Az z0F$jsV~g#>AB-A&E6SnYps&N53>+={#!W2x`Ma3^E(A>0iT7}vOcK7Szt$^`-Rj~c zyAKn6*E#TnEoL@|YevL_M;j{~dk)#ao2|_ml*wBHEwVDvhr>VN;VKQX4=z~V*V%H{ z5QRbqxE(AftSwA7m`>Pkq#b_Uz-U$e;hgli_;TfjKY{T#yJ6@b`*R;^PnkfWa;+;v z#uYo6o}^%leF4$M(oSPfA1QE^oeQL^bz}B`;B7O{Fj~16lWMx62oh2qUxT7o@vcC1kStjZ+Q}GXlTZDHkwR z6Pi!bnHV`V?2rpssy1j)ZDevgJSyDCG=C;Y@x)5wd|fy^-CYZL&dcT&rWS4Q*ykCo zpyw^fOB9Ff(bq?3oQKV#t#-_X7z$8?R4m1@&2tZKVag677-MZkkvaObSq7@T0_4q56)j}7q$_SB%DGT+%uJQNXE@I4+WhrIW~Ox}G+OE3wE|r^mcodsxB_ z569Ct#Yymye)vcLlbam*YzC05w$ic3p=?(Gs(kCRwS^z|V9a{;P`&Bim0IXSZug;h z((r=3yHj+f&e^c9?id)=KKeCYaQLvk4J9gj8>N7tw&&QQe6xnf9HPz8O;yEMfve#0 z3g_Xz@9MTunX<8Jd=X(nJ0?#q@Z>66vBs+uQPM~2VijX^QRQ#K9_8qbwblv@5e9rz1Ul6=mR6E$xVJjv?J`r)sZS-A7rcXN22**IcIg)oZv z^5lSE^Jn%YM%tPe+zq!fO24sH+nLp7BlUV@-B?PWfvD}?H7tWT8s{M&1~MmB;FEN1~3aUcob*3`>W6EV>~>`GzNPL3MEQ5 zd$=mKC(Nk75{dQ&9`rQTV0u5!_GzG%Vdc-?x0?b?ziL|p9s$%{?^r4EG;D)bK4>nCnOUB zSD##lPROI?mzOaluk|BCaR^P_gQY)|6lLc~O3L1zA=7-acvW*0*;N_$8j(+-ZI9UE z&1Ch)WeKuxaoh<3R>^I^N`GTfyk!MQ^B&gx0A>c;ey2R1RJMYb?(-{|wp$P?31DL9 zF{-?>c$fgZGGm&0W|=qnR6nEGx#AX8WXh=O!C;FQfI$^2WQv8az@&ORM^g41Sw0=Cq)ZA~zTEOLj$0}z z5@z5c64=zb0J(?PMshz^c@4gsF!^2YES}G4N4zq{OAsB)7H7_FczYhRQ@)%@b@t@i z^AcR`bZfg5IWe8#ZThg=KkZsJrSO))7<~hezf{?TMeKR}baV*Or8KpGV|pd*2!OP& zuc+MJvh4c)E7LN(;-nAHS}A+6+`=}R6@G^AA``QcM)msCmdd921rRC}xiZ25Z>a9} z#326JiS#ulkDGTG8Q9cU9{er3#K|i!Y&lB{bvZ-O>El!i*)^NTdh1tRtIqD02t$;8 z>A&g{Q^bdZCfuUDi5~}F)zd#Xdm&cl4DK&HO7KLtecw`L6p7{}2&KG2$A>-UQMSuH zfhP1n8pP?7Yvq$9p604kTsuy=%y>C@-2goUnW~X#nLPS+aY3lp=t(@!u3qe6p-h?M z#zKHA@G~ZN_ZpsbN9j*t?RX{dAxA+dF$-twV(nbf@R7LpjMwNTEO!-trnF?@5yw6yNMuv<8pL5f#VG-&mcmSov}`E!bv)Q`z=o2aeJ>Yz2Uv(`0@2m{ zREvFql89w)g}07S_Jqv1@O6K{jIVueGK9uV$fy%lVvSuFy|&AkcK56GJegoi_>9^I z49ufdy)9&;Z%sR%H;oOytMBvk^dz12W9c}Uq0<8$BG#Fxd{TS5j9VtU8Y{b9eMaE&&#szHE3(csXONuO=`k9jjkZV01Pr4J*&QICnA6p3 zv6hyZOR8b*ZWNEf7nbx5^j@bA+Fbq(?zrY#-)2l@f*%nADMZ2seyL-IT?12Vz8T>M7+Dlf`pV29T(m;`uCvX z>f!xrjI-RS_C5}AW#;x5_1|TS7l;3)_?@6kDMCg8dkxknP37i0gp_`hMla_P$>bxd z=Oag2;!V=Cd7Qb7DxVvXgFOPA@}d7;mXIZ`F3z!YVqI%9(3NZ1=g@%s zouIZDM6^RThrYqQhyg)RY?!nw!D37?h|LPheu&l@il)|I)4Oo|(eT$-jk%Cbp_LLn z;VkJq-S@fnxQ^&oq&!=)n9!6{QOFVxGF4d-12v^1EY$%fTq;>3mIvZ1U~Dc|t2!+M z@k%8S06CP2Ln4r=K=c6lr`-$|x2!>YIoKww4rHFSJP%+c{CcePK2Eq(ezbES95~x{ zd2Y%svifocTQzTTt_4i$+i?3bnB_E>ErtWU>knLnv4)!-=xedCZfLXmqCKPI;EkJ=`c@jkj#XR4=U%D1iwtC;hjKTP#rI-V^=&M+A-hj;hcP8`c`_mB6e1@=)xD#OD4(0s9@ zw9JQEU-ng+cD7B`lOs`)KY*VMy*@xLDD@?)!mpZ%I&LKDO6l9>NzMZg zJxS^_Ozy|BvrBpD#W^h@dm<{>)H{)<1IzGl5dx1+{oS(7S?nu7sVzjBxm}5jC2#?@@S8+T6m&>!F)1TtP|hgU9ejVS-;;HdD8f4 z{2*cU(U`)u2R}B?f4cWPG%952%an7%W6=S2FYkV&-v~2)e}zR2WD=Xkn$Gr^Ua_cM z=6`^N9A`pR#Gk&TP(7K%8<8nn$fvyV$`+QY18$TstkS1tq7Tbxp8i(082{=HFYujb zMxX^!U4Qyx*dT}+1C3P;*luu3S;?c{`qWpZ_9ChG_TU?KW%0JvE`!4{5tylg^F)?zH3ix3}7LVS$;*=JE6PJA~AzYI#wwDjUruqbH7s;gb74>5_Tuwd- z=)&txyFdeP?$%#EF9k`b5k9+N^0RsH*{w{9w5b1Z?P6G_ImaUPH*!5?4|c}I^P5jM zwk0pNvPrtK4INhD9=g)x8^`JS9RvOL>VcHFaS>9ZZ}@u4Hy@vNXRmF8SQ7=ue9BYy z5o=zmjA$sRx8fvadsybTN7FMCg(RqFZZc9)Y+ll#+OpG(i+Vc_PG+Dta&M|u*rkk!Woq4X9FDNZdJE_3x^J&4>t zb`5Wvn#seQ{>iqR-AXEzzDkbdccui$9|SPr4y zvsOCX?!`HhowzOJI8fYbeqJy4bDJ}ZX2r|hF1HPukk?<^6lVSE&!@(QSN`Tu;~CR* zFiVw3m@Y5iUh!y-Y;Qcv)G0>4UdXBBr@fBLT?#lD+2P4u`!Xs7W18%8YI$fZQ?xLd z+Xgysm!(Q27DFjjoecP`FCf6Gd~1MyOdI`RVX10s&*Cq@s^4Za5GYA^wLVZDt>8+# z1Vg97yHY#p%Xlsp%DtW-Lv^c+%H2C64eCJ|{^O^FDoD|Gu8ueRN6Q;93l_3H@qt@N zh&9VAUbsX4-R+nxVwqK8iovWax@h00ISyq_)6r$EIqRB7q#Ei#G&;H`X>rIz^Y-%wqfE0Gxmr1ee+`uTBo4)G1B@5;o;2e3_>tS8(E2AyGvDmlFq?w#%L+^c)-eh z8s(z#WIu>2sO)|`$=Ni$*h)7A-I^D<%t~Qz@}FLcz#4qqU*^8l(K4*s3F;2y>@qW( z1qz>?y87L_JCH!<`3JURFa_T2dWax>EKFD}XlV|ry5`Rs*#3CVg+BtLBXA~aPECuk z)V8VGVe4c^vTLA6`tjJ`yTAgnAk zI(>LxJUh|yrMYnQ)MS6*9{*1EDkvM045kD>daYhgO2tOpHq{2X85AbHQ<2JhUQW8` zMAz7gsG#VDyvlmG>*|9mat2~9pR9`<+9T--B&FsLufU`3VZP+G0NBX@z{EN7YPc^d zJAs=DuSzyWh2$-0u??E+xMV(MI#@t7Pe~qaj_}jD(CMzly1D7v@ylWFbk@&^X{gVs zup^BuRvB+U>^@^XON^1yJ+T z+XhA>cIatFuT9Rp7m0Q*TN`c%!X)L$EHmn70)b;-boN=GRmpY+p@z$O(D-0Itht3n zq%yDmItR+eFp~EdMmne*M&wOyen!3ouw8Xr^(T37F z)~%dYO3faYmL=xCP?y~WA!SLr5xS*1cj;Y9>6mjs2!A32@~^<|b~$BzK{?r-%>2JS z%MQKE*of@Gbs#V6S5+(z%Fbs{wj7&*_Fp?y6?*p^G6!_*U2fY$B8NMWSHNEOpF?+) zL@E1QhUB+kH{2Q#N;0&xib>NCT{kv-#(`tov0zMbN-|jB$>+|Cr%v`4Zv5Yq6i#_m zNlVDELeApuBMlm+G=Yk_YG!Pttz(r548veRxc$^}m>!4U`isIDnAshY0*M6W-;+i&uN=Lf$!YkSFxUo4lIM>Oa{}+Zi^2t zTl+ZynbUkSFQd+P{mYms1e8#vNJ9&dhb(XB=_ZE82hd% z=z}x%1GSe~ebz$~!6rLS^5zd{p{8Z{9^@W=Dk3JkXt+o3L-f#zhZlx{2h)bZ77LjX z#0z;h;9A~FMER~V>F0imRF=Xx>`#iYqbeLP-uso$n{3lo^ z*~d#GAZKAzuBb!L`AV@)p?4r%LJ=Buvh(qAYDPQ71S~nj6on zq%Y0Y_l5_HBW))s>0dKVW3|#enmty}Wf|x>C!k#}AftZEPv{$d+R2;`=Ilc_JH65S z6|n2Lhh;|ThP7=rkafC#ER^`ByXlg5S=%++Gw*%xY{mcC-FS&W8{KTlZ6T}|UMv0j zVRA0AKmNOc!YN}Sk@K>Jh3rnS|D^pIKW^J~t>Qu2>HQr$dNf?~`Vm`JN<1u_YXB;y zZsCCg7~+$Wq?*QJj&t@c*cH9q|B0s#oh*DlW=^v+k#qVxqb+@cIY~~Z+J2c_E76MZ zig`cgBr0ujF+zRb-uEBXlkAsncS3INzJO*O8M#@dm76TN+iO;Gz1ddbz04|{2>goj z4sRw~GZs$#vzx@M0@Kr{Qq^ymgpPS+h@}1sCcENny36FTT7UTZj~m|qO;Xj5u2AU$ zscA`K^Sna1JDM8@VapXP5N!E*2Ku<0;7IFEBh(!iT|McM=TWjYw|lZk=H2|5LBZ$% z?K(do;3EGMc6oLp<)t?*jZx`4b~ce$bQ_okfwhQGolO@824*Y>%N`!6y$dR7z%MKQ z%L+pxJK=77;AW#yP2V;!3{KNNAC*zJ&}!oY1FiO*=e4`7n`{e>joXhS(Vv>)Aj@;) z8DW)RH)NY?-cL4?&wEMBO{}!i^k|hT0jG)ANHpRdP&zIyTA=fT5!&eed$G6En0@)M zujXfv7tEdL1CNKN#_G|I3fjsSp_NVX)9}vck%C8&iow}|4~7*J z*n}|~!ySUi)5LOrsFG1Swuo?g=8vN-f`rt6KeGO@1@QuxCs*s8D<*!6;eTEoe)CM8 z_PLOwHMq`Qx~N>x23JfY-EP^xF_`eHjuQZB}iBeR*M$6 zxDq}g?^1RY%8Pcw3g(-a)kiAY^2bC7)$Z%s4&)haauLhN5B}46dCUCtIF;UANHfT? zcY4m`Iah!Z5}?XNQ%2oA;85>}-4=!r05(nJ-v;#7{`-RXjz7l2g_U8RTw42>;*-V- zHOb^^8U?6IYnExfNAU^dxX%;-M{4;51o2EGjaKza#iM>Wz7 zY|WpjD^#4%__^pbC^o%1k#tPv4HozP%WMkk3DW&Wg>$#v1*a}xaUPz=^yNI(h%o7R z2cnNuUav{JFtlRlu&j(h+-`&dT#fL>ZF;CP0|)-@n3wea$ArtTUm5H_n9}aJtQE0; zxkc+UemrxTpL$>0I-k03FharYtHG}L ztcT_R&N-n03_)&;<)7|X6q7)xLo}-8dQ^-CH?4YIINaR_uxp>BgF+r2Xs8c~*~N@5 zHADABGMnlba>~FWA6UfT<6eC|Gs)pX+W*VpY=V=)E$LxgY;=f>bS(i{?`k(qy43bm zv+q;zNt)8XDZV-bB-EG5M^@t(-UDn~`yI_hNpl&%n@gL<6af;UOUwR1j4;3fxfi{_ z%IZO9G<7vE1vVmP#sU%NTdM+iME;(G(dmx%8x@D(bG`z`np}DxSB)Ga4g20eSX#9Z$4S zRyWNFEa-Fb71vSGg1*W#Ka9B3cm^cmw zP?i<}SYGwOA^=4Q@cVT)FnMbgumZ(~_i4*l2gB=#6VGH{d17 z(U!zx(GkmmnFKJ?Eg}_=^ejEvYv|4fxin4Q`SHhm9Rf&e{r&lcBoh8JFuQV}hO$oa1==&Qm>O9g<;HU)n$VvlGO%3W2 zkZ#xej*gBtm~EtybPem`XuMI%5&$PORvmomx8Em~)6*F(0|`IO6T_i62=TWk$$r4b z()q{aQJWexcij;?6GMRg#A>XHn`-b=|A#%FXUt6nfOPPdSLFhcV!ug#; zI_!saP+PMZxz59~f@z2pc$L*vbyqyqJnaH%Xj63m3qF9(X?ITkA6M4`&-DKOhm7Q! zqvSS8bdgK7C``qvL!l-SLR89fDR;(b6}l-?N+KtcyOK+;6Q!kEg}H^fCAn+}n~nXS z>2`kqz0T{rGPck6b9+9|^M2l+=RLF7T-hn-m`}`Ac2W#9DjpU<{;Kt#yjuL~WRCdol zOy9Buk)MDw_kJW81##XibR;^9Nk7M7;UT>F7wqRgVQy-v^Fn%_M@SqIADJ@*gj28< zjC4UL$s<+MgDJUlTpL`pB*CKGf_-X2HnG(jYi@POlu1cyXTCTO{SJa-w?j`}`;`Iufk(n|aH%1rOZ6D5DTSSr zoc==_I=>rz}j+f%o%eJ zGr#`bmrwEJ64vlh8IMamYp8G0v)BeX!*#Jq_@AzN|9+@O2D~L;5^B<3olzDNe|_rd z2xA)F_6y;V>Dc&}haLlYK>Jbj?2HXDbep4&$@6U~tJuVgVho5elPiMpt@d$0_y+)kRd^F+aD3f*)z01xUNKi`E0E2@g_C{PyUZCp5M$ zHjMCXxkge-e-Zf*wvsWWNZpzQm>TgO_%REk6Gtya^*+A|C`g5HkM*P~1vfTh#o@kd z)~+M7zY%%- $51j?bXUrY&nUf>Iu4N~&wF?&y0l?TJ)%gtyb(OeVPvO<{)-ARd zx$O6v^=+|atf)*8Tbln!kQj$0B2r4J3^>#;bti%e`wswTJdGkZCw;A~r(#Q)} zh6gLMjv0re2;i(R4bX2rwxCt%o>IGZAw7c@w@qRNMm;2uaN5~F`;g&i^7cJ77@{vokL$pZ-Kq;oASy_xwyLWJ|Toj2)#jltV{qwFxP*o zxDMYGUMuG9)zNs~L+gT==DRT$4%Wpv3>N;qSe@kdW+4DE6a}V?ME;58@=g?WgSKd7 zW{~&_g$uoR%!PS;ydwh$8OP#9wyP+CcUFB9#=xUMY5}F*zVB(%+;@MJ$*P5(e*ji}P8# z>K&~IK`wmz%o&rY(B@Z~C*suw&r#avz-QS5y|NPnbd6>wNtOq=c>r#k2 z07Smih_+G|x9&u%LD1mE7KLUf!hIusa6i_g8VY0 zU&K7nrgvcoj$6Rg0B%>1E;Mv(5USfs5}T%G?q1-3#H$O3s!;v~a0-VI6@IiA+;Yv& z2!t=i#4uKq;6DJMblC9y^;+GXUJdk-tOL9;7~olw(V3A5KJjvceef2@c(Z3F0lhdm zGH7iLz$&c~@&tw_biX=BY$5H!?7J&I8FHr|Jf6<8t<&cg+u=)o{d^Ua*TGjR!frN)>Q=vyd7}t(k<ruJOkg<0%n<@w){lCxZYV5i7g4wL7-c!r4N zrw1;J_N|e|ruQS+T9u%i2YblHaDuzIBN5I^|BUrzZMnaUEQEQIFuY^@ zLl-V}K+4B1J{RI6qy3v#06utEQXC-Nj6<%4fO7U|!$~u5RYz`Du+D=fp!s1;^^TTC zJ1kLPrlZwN2cjg%P?>ulU%mj8W3AGFpl=a9jXotcKU$~X0w&&%7c={-5K+WyEaUuq z6X-Ms5~}ik0jFC4orZiac7tkg4WFOdj4@dm1qp(1KugiDJvKH#1?eh0xKpU5^K}n6 ztTX%wpZ(eJVj@DJUFPx_RjW|IY|* zv?>TQ*rL22&cWZm?QP|T@g>D%##oyXf=o+lnjpQo(lK%#Zb;|FaUFF#3~Fwvz{`>@8_!0g-UP$mcr3LB8`Kt~+BFK}6j3FeWmS)beL`e9<@lxrRSU_#krdU=j!efy+FMh2bx-DQg zvwZC4cqv_Ttj5l!PGC=#@}(#Ng%<4re#^yvOrm-LgbzmhpWZQdWrjjL^mjm}!IyOu z=lDEzD#^%l^04O}YSGM-YqX(R8zG^{-n*ygpM%5H)nEd-&T}IZ`Xnb@j^DS%M$5$h zvu~pp&FVYICasl|hx(k}nJ+FP5oF&0aBp4SP=; zB1;Pdkggk8Jt87Q5Nv6u@4isl+2GNsM}8>}M>L_|i*|TqA{>Q+IDzQ58FEhjwS@2= z(^jkdYud_2B_UwIKvElLNU<^;|A(KS(+H5Lf2ZyT;NJa`+u+bWpJ9(=9TQlL1^|HC zKWT)n916KE!V8MOdUC|THMpGC=##N~VISbVYV|w0)oW5&4m{reJ?&^ikLe} zoV~z1c4rR&ERgZ-eh+T*qAlxYD16?I^Bo7A`{AM25FJgaZv=FD{u-@eZ(a{-yO*y0 zmMmW$-qY8bPspsOxx@FBCmzZ#V*CiQ+?T(7e~c#m>8hbIsG|!JdM9DF0vQKqmhRDg z=eEd+SKg<7MzgFuhv*TANZeXFm%};+JcX(y{{pTy6v-#GFc zU~y9GR~O0Br3XS9!2~yA&S6X+di(*>39gX2m`SU>c<3LdcRaW(*21DIA&Joj$#xew zz9G}tM5{}E#>vS#hA{*j_|oTw3R;7Q4H3V>QKv?~__mFyz!&$Q>rm*}&wn6%@A46( ztKd{Y2A6pjpg;(2AUXo9P^cvk9N>Y&U`1cTmXYc#PZg7zf%{H-fx=%A2QefhERk#@ zTsZgONG}!4pRQ+k58N4bMll>*;AQ~ycf1rji?F}?b1RF(^~)bG@`+C(B79%&)*)Bs zyF)DA5l)*!{1`t5I1QA5jdG(k_bJzFrNG>KGady>IPVu0_en>JAcp!?(a9c~l#?T^ zfMA6{sx5@W^^P}%OnGaa^~}UYS^>v7g1?A^98y!?{W@@+Kydr#EAemeFEU=t!@>za z#XJk$gN1p2z?BA%eszUHviU`xcgBlIK09qOPaoe3;{kAtzS>sNp<|zE$2M>QrkbXe zrk1EIJnn+v3J<=oZ+ar6s90}ffx`f}Z-v*iDPp{YO3la*s9f>Wx0L7KNnLzJCZ53e zE%>u)0M|bPX+#r#QmErB$6Rucxu$`rT@U2vLp??4?T6Mua)Ez)<#VdTm9a96ZX08V zc=EM}C6bOV-KRke1`Zpe(<4VlCLnSDs9L3L4*c9czb)tl58$y7dKw_(%o}Xp8EKfc zTA+3M$JV)2|MM{r^b_*dc@GbX`X-1;ct1M7fCD_Z2ySsky|^D(`N2fI9-d>*1_Oh{ z0sey285$!JOKo}y^wDXk_^!T)l$(5PfMkn{7pfseiGr$Vhshrh!Ho!JseIUeGlxO!|}u;5OgGI%MAd!wX_VNJFl&uO*qPeZse z2;bd8D@A2O5WASEhC7eq-N29t%jz{ootm%UQ!E_Ef`7ULyM71o!AB&41Tn~@l)%c~brf&U15}HVexH+@m(WjhSSRD* zy3-}xp>VFl$j5zoJ~cN7O!G2l!|~fGW5C$t_m4~tsrwny2CsUx9fP35Zf%niu=fIt zokd`U&ees`Y>nJ^Lh?Wpge~CRoPm|- z`l(@v?>hk)U7-0KW)K2Qep}EQ)KdTXsub@(B=2ho^d~9F>RWKnnV;3wT$Qo=5`ZE* zy;|vt{8h4HlweZq&IG;!ESPuA#nRxDuy=Td<2B_bT`VP-A=)*gLe8KVm@*z-d6^&~3=QsDB67?Z z@;OskH+XLGhUVjsUJz$H<~zp>qILlyTzy|`t^lBR;Nlch$2>OI??pxD^psYp-?e-- z7SYq-QwqsfKE50p0{iA^JeZMrEYY1QL>;;B3H}*90;Xa2>1&*{h+En4^0yk3LpEm>=!1gl8a{8U+{kK+2PeDP~`$l`Y(Y%b@OkDUT!Pt z=zQfBxkTQ^kh_*@T%S`1JYzp^DwAA@`y?UpUeF`b#w^lzbB+F6p_aQu^x z)DcWKMWuT1G|2%MBmaKOP2;fJ@^nA#IEd1h{wZkR`sH_Nd3c1X5@DycP?iB|9^JfO zTPt_2!4-mdU@t>3C!V|~lM{%jtGIP^r&sX|Gf4q}QuvDq+4vRmm2 zPc!TOw-59sdIqyYhCI_7hRfRBm*O2B z%i`p(H%UlX$<)@`guGpzR!a)G>kf7EL%j^cLZU_4I_S_4$2I@Zo0fDO~{`${Cy$Lg{(8c5_`3jWXNp*1>LPWl4(kQ0sl|w5a zE_NIG@+jsgv0-x38?QPIRJ>2h14YeW2Ln*4jRh?LKaUP#4FlX%sS~69vZG3f1E?l; zmFyoyiS+2f|5-Fo|GqFc@`1jVzKbrPW?;`ysl1bTw$(N3;%42p&w4C%neRQIBXSAk zlW>L2sLu9#t+A0jx0&%}?Npf3#Hc}5z{y5OV;3*qXu>&6wdip`L`plIHRGI8XC ztKSfPeR(fWMs4f5EdA^~IxdaQRd=emyJx1J??Jgx8olG%8#A^|pN)w!T5}B(F{x06 z-@!B96%-Q}{%bbVqkI3`YmvO??!M99rwY3PLxcsmTtV@1Ad^VC|^N;8a$m2?v#3JY#T}*h=S_H zMTv1ABzV>*87W>M))HrZye25`-=7B2JZ#{~xBqne#fmPnD}2L)ihaJ&vWDPAWsqgW zjY&$-qM$O>u+hmF-QHm5_aK+xC}$YW%01qbLd9ULgCeP7di7AGt$8=pLNWChVedcL zgAq=qU@-UQ=hZ=b=Z?oOq3`snKa%cn2oMWFvNf@Nm3*bB(`#yC%z@rHdnadXn1pN; z*<4LG_%?JGZoIZ?3|~TC$=v@fE4~VUZCpAv#8om_*Tnffre`%2dh$%ud%UCT7)CSZ z0immI1QVfAgAq{rqhs&y_eX*Pgx*xo$N*U|<_29DW2uCR=E0wZ(XSLd*EIFTFC0= zBE1_5Ek+fbq!4AP@VV`AJGR;fJh-}Dbf;&|YEZUg3CU*=ZbTRnK8*dht3X+NkBcTylEOODX$qi(E(-;BSE+p`Xv7VVPBj$8NwxnL zQYqj5-;MJObq`cwF7kD;YilnWX%}r-^dfFr=`-zO5OjGNZtA~^3dyTqoNrKZHBz{Hm?4l$KPum~x%-8`|BB+7hM1IaSFxB5` za2Y%tR2BY;=oFm2uZOTIQ+hfTaG6{cVQ#kTPU%^ zDaI1XT`i5)Urvk;{xTWLi2piN9XVdEB+>5$GOKxO)wB#6-hXhdf@cD8rxFFV-9%Y4 zd*4fK>sjKy7!z7rtsdQe0cBogBQv+Fg{ExJtx_L*=<@*)FIs(f^#U-?t8zNhKc@lhsg@!b_G-MdpzBoTLIdzx2 za2B?qkr&q5%Y)zy!jOr>l9Q)rCgouFTUy_1wzz2TVqhhXFeu7NOck*jnzf?;5g3%b z`rr8;YuQ$~>jDQ1eC-Y{ArFY3?h^#{;{BP53Q9s&f<|5uL9|!CP=)(p0;%hIu;~;y8{;^Dwu-Mh^503997#y7MD@*2k(FoUa2xr zlpG$G0!CoHNlkJUUcw$#l(;W1fr!5@Q@gMfbl*6sAfRj0-ZLVASo0qTM5y=P(613U zkDu`*iOv*AR|vHVA-?r*mRaWnX5&oA8`zu3J+Zz#b2U|a;MhU=9ka*2f5D2FFT53w z-^5`F!ggzPPXU=|L4QzwE5@$j64W^U(Bn6lh|3^uz4WS3L(%LX4cBxb-M;m|#6QjB zpNVvWnarL1KzD`o;v+?cT$n?SzuIfCVMg!Y(_O>&gO7K8dD<>mM*@nYN&{O`jk#_! zQ(q8~0icRrTos-A*4g+SRFDH5c)|t_OTKFt=8wG?M*QhB2#-2%g)85ZlJ8~e5a6)d zy5hhmz>XaEWg0xe`9k?swe!R+{zT$CCQt7(+WuQ{-Y6A!4O2~qufIaRRr$6BHt6*T zhPD|`MU5tVT~OA)jdhL}ZL0DLy? zf-N-Sc}-lB)(i4l;=$)dk>lOQWf-gF0(CoBJ`n%h-@&c1g0*oBkmxS9_ zU^=A-t^>6%bSR6mhnjL)X}a~>E=&NkhxyxviM;-=x8r^Mo~UGCq^;W58nX)`D<|#M zc3)Hs2{9#N!^FXVmVvnJEcl(#yiA3L;}PLXb?31Lgj z{KcM&G9NqmG&&B>#_}MSjVzbh$=Ff0B=gq+nI-bygE%WoQk-@y1^Tf^AG|q{m9cal zHp0vOExo3B!~OdeK>7kns8R8S)-)c)$jTKu9iY?mMx}abu6`)QelG9bWy;)`E}mW> zoko+n4qe^~YYrlc2M{#M)(QSH+Ss`NnQ89;U*9Wj=-^x4A8J;y3WyhS_<>cnq@>E4 z^YfY^U-N6Hr6bR(IT?&XV3aMn;3If{w8`!(a)GDuJvAH;I;_o}0VvdBJ3K1%HEVRD zKjg@-Gq~CG&l)q2Z$1NG8nU<@ zOJo*;?w@Z??P<&#{n!Xq8!wLb2I#oF!Bp=N=iF>|Hf>LZVcybSGlIdG2Hl`eR961# z;J4L1_P@eh*f@?55ZrBB9V}3`#OXEcK*R@uZT#g_wHjP$P}U@@Fi1pM%hvM4qQ2qy zIkzjKvpOfFYVM#=>X#5&%S|Ij`{TuY;h5LGRmC}@;_7JGxB%&oc8FfM>_OmWDXz7*?AP*yNX-K(sUygE=q1uA2I+Vy?vX>=nv zJMBd}(zU#~ekI?#AZa+f{+0t2a9nT)7dg_#KbpN&gnjh{^>@FF|0kHPXaOSj^3}B> zUy(>1!DSG}2Ef`{Pg7}5tA!A469l=Lk*D44j)6tulqUA1dC@l%CL42h(J?RxN_w9& z$NM{#*SQ;t2%CE*!ucCKGYX$O;<}B)S>g+&$A3;Imhj)T;~D*;`$f2%jDpkZK#`O+ zf<&o-p(#)?L+g}|W!-Y{y3-~Td>#k(NqGO46YxCK4I1D#Sl(ZJ(pXr(&0(pDRWJTbDw^T{XtDex^n;MUzImfbp~hcVviE_^$gY(TOpBqV?MZUSqJ`%mH||GZiu~q zF?zUK%Klj7fgPth+Y?)%muY9Uw#@}AFZ3)aF$%!q=7J~-hRF@~Gb8Os!}0O*V!AgI zvpB)?&R2|`;?q|^Uup25D6awL6&3*CyWz4c+{`q`AA z1gta8GP?oI)}o_i8AoXaK_FCBAjr_l;DSg;9h_P#jO{@>XDdCn{@zwO<}^8TbYid9 zVcY3DTvH~79%r$BmP5_}4KhsuR4V#8l;b_Ee~=Wk)pOD`BY~4^J_gE3N$Bl=Yx%R0 z^i^TpgO0YgT}kK=0&Sp*mOcZ8&IMA;w4S!TO~TW<35Noz50X&Y8K2!Pzacy)`(t04 zD3bLBQ_sqpjA%`$Ssf*ziZqI$4)8gQ6=?fxhwp>>&G$!ILz&`C>L97%`buH&7R?P;89w+TUTwqW;j zpM%cRY0GW_JoceR4NJpw5=2U9lT$BqDKM`c9+urH=#YI-3F7@i)yg2yDzT_M>}C1w zf#>8l`sr&)TtWK2S=Phx+-%Q_!Kf4Kag(OB^tpE{2Ro_9)shtfdNp=v5|&gwJw(5GRB50ZwW2x65=WdW%s<5HllmY(pmuf1hWF2#>*BH(-$ zfo4aO;{*yeW@v>42K*J^R{O=P{=-$xp$Rj3pqodgteJe>eR*&@J2JZ02NOjF^JRL; z!gK+;3cVn*201RQE$!o7Fvx2cECH44yb$jrF{)sH##7aHpU;eK^%zHtFHs>;cUj9) z_ui{`YQDqXabmM`g6J`+o}9AEEtm>H zb#vzn>uRc9IXlvU~E|pc(F**%>EQkUj zMAP+y0@QryJg7b?ur7ozl*MiHoQ$C6s~odTK~%4WvV^njehiYkmB|>9kj~h9faFfr z7wR#~73z!&i%b=$F6c%agn?#%%Wcer2(zp6F(qtq=(i_PeX1|Y(~D5E0w(v+?1R+& zIVkHf7EBJ^#&n=h)T>>c?@;U3ijZQy!M;f%?eiz0*||`Q#gLqoEYuCf%RxU1)?!l> zN<;8~2vijpa<;Yj`KC=&tBheD%FNQ+gAoCH^j~zAG0ly#KEPTNxij48$%9!{&vTNj zowR}T=&XCW6l*o)PUGQ7++@&G4V@#T9iEH6RC@HmXrx`Na#SJ&nnq03CuM!^^)FI6 zQzLdUFGn3yFvG8nJhTw{Vp;xu+ufDrlh+C^WWuo#0tb>;{ejLMpma&qU#nbsS#;8+ zy`^p_w$%{z+Bw2yW@5YBP&%4Z*4&W-5o9oRm7DC{A~t)|wSK-x*>Zy~cS-5dpqX&} zmF(qlg{!COnvouZe(ZV4iJVC`B|3_+F5~l9JI#_daGW+!Bvq!tlMl9BKS)gR>N;*| zb=(pY9enh=>ZSYI2!bHD3;TvQd1eI0%8WKJC0VGU1Hw~P*f)&ek^mBVdlH(>6#|h( z;e}o62j>^RK?Rh-M!8|aDm*8_6;as!-4g%ZPXw-^Uakfoc&}vr5YV0hE-6Y3bho zYSe(jTN6ACD0R4ifFlL=7?#9d!dezZ5W?>ek$skrn^a=%rgK0W<`51G)>sEwy)t-@ zl;@-{nXjBAFe7!{FHLJ!U4 znOi5yr@ZQYpF763+MS%@XvQ496m49Gr5++{6yB~XAMc+XoY)yLwiz&(O&mbztvvH& zU>^6+jCDpDPL^GiU!r>}ar<@LvbE+rlC0GO^J`hh=^~L-h#Zy8cslGkvR@>FGVN=a z?^teSiP?mk6gGZL@etyHq>T>fpUI-xhv*`)#n&^Xm?2oGVhAFc`*O{@K->_v(cdCY zq%CBR{!)GXmSnFYF+qaSVWFR7MngL9f!tWgZ*^Te3eu`8!Tj|sApaw%Z6pSLdlF$Mm3 z?3iT)x)7@Mn`~S>-jHZ^EZJoBqYE=H44AfOq0!q|%t=cNn3)}YC6NJYe*sGOIBpqv zt=r0^jo?bYw_hT$ws^nh3JVB9=1KK}qkjHDOELEwV1jzqJyEIsTL;THBU?eu7uW~j z)H2X+D^G1D;tv-M`IN88YwmD%2JK37t;5Eq;#1GjVXQL|;mhTPemKzA(_blE?To51 z%_V)M*vh2c%YuUVPZK6rx4M2sqC*s!3U1fj3p^*aT|v4s4vzIF8Z{-+cC%`(a12Yq zY&_5aX{GzG-+q6y40L1!3pD~BCRGZvw$W{kE6Z0RGGQ^AkQt7oa?r$kFVtf(a5QYt zPXWyiqos!~+!4I z@vPA7z*!w803A4~@1Fce0CoLn|iV8-W2Psei~eU}(H^4GyGhDayBv_3=G0~FYg5pkt$YMot+&wrSbs{Wx*m* zX@p)vr1g8Kxi-7_7MnaW>;lqV!)yb#IzxbOh4wbD@V(WBW{Ev9WE#oL6%cvL>aV}R z)%OLOZ)%QZ_L!^vWng(>-g@xkXT4w$rnughUyCiU1&||oJ~YbSH!v3R8?m6)B6RQ4 z$MnN96UW>Tqm039Ed02YBCGhvsd?5_`fQYtgjFgF;uXcx~g1kj#O1{xZKeAdz; zW*hSs4WnO`rvJ4h{27cDCMV90pu&o?wXOOPw!8H)r2*8g4%4^H1y2t}5?pLst_1d| z93g=#d(gJUF>>hp#5XFUC-JU14qJiayJg+tMg{N{3alWI7fC~BIZs}kTk~%MNRXhD zdlL$fm?Ek^SQ`uaT5w;rGgyzFppU@s5>{6i2x4;JcgtCqb17T8*Ss-#bm?5;G`w3u zwIhJCMFxCey8FOG4HNCKuS4J2-}q`bBj&yjH8}HMUKudqV}9L=p3MWYPZ!^b1fsnG&ZFk^AZoMBb|Wd^>Z$XS8I3qBk&a45R|mAA%8aj7$`ANvWzy#h`*gAUQ54`%Mk{PyyN`b(%#`-fdYe%DSALtpe)8 zU<@wfF)h}qiD>o`9QIn0kqCa(lP_WaQuTW;f~qlWiNfuACoEHhoo}NLS`tgL zPdL5~z=The%R#3|2J|&6Bq!!-#8_B{7}~SXF={31)3nqOiIEs$_xPY}k08ExHO3=C zc;eA@ei*F0wv&vM5p_y~w6RnF9e{*#%wB&0Y;Ku<-}H@Rea5!{A`(yO2xt~~vA!HY zBPx#}xf06=Wx<(gjK2#2)jtqs?~aIAtK)~}#Q{84-*G{%+ z;PuRDrEc7K>b~6GXBxI)OPSY{x<~e=TIL3r^d3$7{*tZa&bpD$D~j}a$RiS)msi^p zo?S&yg}k@dcQQ|tGehmxNkB9a8dKV9Q>2|yu93Rzb0GhRNbA}B5BW)z^U^+bnnF}& z{(*jWt)Jv`jZ{gari$HJ2r6>i0KQ`@{YbYQA3C^x1MVdTs2SNWru~gXoZb+01ajO9 z^^jIMi5+Ru48yqP$H?nd6co-NMMjvsCAyb>Bu;C2IrWHCz&_*xCE*l&$qnT*Dcr@(+Y6Fk_>G=i?falqT{I%&F5U z{GZldLfDf$X#+Me*C-Ntn5oi|lGJeQc~erewl$^UP2D+>C+2xV8O^fQ6A?=e+1es3 z*6*vow>f%@HQxD%MjM!nY#w+Fa!e;J^FckOFv-bXS0fz6N@?Itg6y+E4&|Bv2vpM2 zq3`K?IW~DlC6N+=kou_N9I6tM7guPr@%iKR1EpN`~)&Ul}Q+eKPe2)2?~g7VTzP zQm(N#Cp%Q~+JWKKJ78NjIKlvc^xjF`7c>v}Mf{IXX(8PqfXdFs)Fvgsczj=19M(!d z$>dq|w<#-ph757uRx_=0%4?ky@BUli=Nk?Y`^i%uUTT3C)1=&2MElxXVajW4?{9te zFJqr)<}tN4{XId5okelfZF8*P8GI1^min-0BU*k9s4OitFhS@Ko554$XL~lI$>uV z#Y(C*P*R`u;0xuMPB?589TEAk|03C1>NSye6oS>EN=Jt=us*0Qsx>GdH(h7-Prcx9 zdPFuzki9|#m?x3_f2%2{P?tok2!4V1e4F|nDv(xWw4^{JRxePti7FDIRMrGE=Sdjw#D3g@bd0t}L#bG&twB)$yjiYo|YoO9UF7z~;yS2>%N5DFDnSzoTl#_9FVl zU%ijQDu%K(3MF$-QmdU&JQS06c(DiGv7}h3NC%tu^oaZ9fcbWqx!O| zM2lNj(Y?rt;;-Fj?jZ+!9FYnqg zT8ebXo+{Ef8hPAO@{M$iJ1zaGhL7@tB>Z`Fdni2qp;sp@Rc5_U7t4yjca4WNRpkiX zS2wn>1#ef*Es+j92i-)}%BipsfbpFcl6G7>T3ryd-8}AF!ER6Z`u%2PoX*E6^;H6fTXNOh@tJWPR8<ly*OUsA@X6?5KMw5ahUJWvualG%Zgft{ z!>`o0eNs_)&=Yr>u|oOTYU|pYdZ&C|UF}nZAd%jZo(rl;86&Of1jRXn;ePlLhXqUc z=_8z=oW$4%^uK{KBM9^^$$ZET`h=CI(-hTS%)@yMm%E$lUo`2t9n39A{HMw;(o&61 zfK-NG)>#0Z&vbo_Ud2sxn7E@CUsb*xLEj&d{9c8@PYQN;d+QU+f;spFk;$J*)3SCAkG#5c(5=2)MtE{xCnSS7$>5rYIRfa3eu^Y0YrRZWSX zZk8HuHTYZK078#D4-5~{;6x+LEocwK2h?Wa_qwz{<^2pFpiTB_&=_)elbY^; zwmvpYSyON!;FRxW(PdV$y}YGrTZ6BTlciS{{ZnNl)627(8F@L{H5H--q$;32WDV|^ zDCM4dm}q@cD)sdD$uFv?u(HLWkDqzdn!1*-x7kAy!4!BQqE(!wk++X+sKz!}kJ4Pb zxKOa2%~7=*jkazL-dhlw}f8$(z#~80yQxZQPAgNnw)%-v zlD-F-{p>$_y|D$P6EKl)KyHgZb`$Li3kj-Mmv*`z<*%90t?g@{GHD)s#Tof}v=k=jV@W26T77?dW3+~~`&q(Iqj{jFsw zJRiljZ3gR&cAsiHy}wTcxZV2wT?&Cxkok z&esV1PH*aFtDU$COSgkBzD9mdk>gv86*X6nkQ5#yIjsqFD-6ON@H}_RUiG-8C;a20 z{hc3C|EFtSO%e+Q%LVvU1(vGsO>bY|Ew-lBTBc6@lV=l+)Qr8s6PNkRNa*wK3nJEo zv)26NBQQpJtx!sDv^B9P+U0@aTMxaO(%qG<{U+NK;qJDk>xTkcdnaL*h z^jWvD_o4@kyyDf1=e9STTezkx`mI&H#kunc$wOpdCfAXKu{vp)g1XV^cPp5>mp1UA ztx#jEs~-1>=+>0<{p>k1C=n$c(qVn!ew3v0# z`ZAYTERan>!^v__@xc!JLXBI5y6{MQ``|Wh2*E?)fZ-x&1DAiCc>*PtmHI{dE4#Od z7{ToV6a*UYKDdgM?LgjhFEsuljmWaR6q`mNnSJFQroT7x_5h0GZ@NaDvzjvs>^)bY zybce>0^&a7F!te@bFkUt+?3bdH@@(FYV#ViGQw@q`5xrwo8jEUYX6}B7GDY!0P}cS zOn}sskiVlgJkvb2Cn}3FSK`FGaGEwfd~*RLByHd8^X8`O|JEF+F1yx(&o z?QUVmCsIxaSVrjLCUy89LTc5hhCbBAe>ZJ^g)_&8Q*jS1bywHKWJ8% zh9dVofR2t+{Cku7pzv& z4S-vCX&ez*p2$$)+cfidhx~+dCV)uji_pK|6YPl-hTU88@+l%wK1(9P;USId9g3xb zsn5zabO2n#!8_sgN!_y{{C9>T?SvTek@x&eZZ?F(@%wg81@wZ)ptsu6&tC?GEq+X> zN1Xc!@j3a*5mL>#@k1iyp4LF-Z%!hqMz91)*VvSZ-BICvufvgaPY6rGfd=Xki&Y5? zlv|K{0EZLMvmL5&q>UK~{2lj}JpZ71;OXM~DH+aLE#?%(2?3`s=kt?5eYBt_D|YcV#64Z6OCr z5yp~vFO9xDt==QlJC&e2{pPw#@*Gf(}^d9R3nO6|94ZvZA4wLL+ zXDxHhm5)dw3qDlNRHDb}BV+Er>fmPZK#32qDU(a{)09O+)YpfYqmJv;k} zKydOijh0+WKe*vTjzCdz)^JuVFeN5V;`Y_6^#mZ@ z?X%M{Bcp(|oEK$NmzyHqOGninf$`XNVOd;nhhSFgwm!QAIX72ppekSYX4L?p2kE42 z__@_`t+KZc>K(@Tu5m?sqqU5wfJSV9Aq)c04X_oo?QhSr?h!u&xElK-V9`0t5*i<; z)ZFKXEC)O%-Rno5!kjMETi2Y_tlBalsCQ>UH@rFNnT8^-@{HxTbyJpe4^IfO7-R;j z&nsAy>DVo2agVHn2;%>^l8NC5?vpE{dJG4W@C88^KY`*WL#5A)g{JFQZA>VM;+=hs z2Cegos*TN$DK3Hwv#VPNe1h%xG-?G`xe1kz3XnkuDqe0}2vD=2ZU8@>gx-IFry0xS zZIxM`{LcN-{aylaP#9jouRy!qpu#>%oa||=FH8;SE4DG;={2v%4Dj?mzY+{(ARPK zO0nFympDYc!@sg=HM?`A3~Ej5cmZDtm%UvJpSu@=hZa;4Q>^k1xZbg?jS$%5Bf{54 zWB^yS_*tTqP($1H*Fbdun@IvfQo~c;N-FSwEqH5qDJ*}we`-P4eS0d$9lVmGHOXkU zIDLO=0mt*9hJ<6zOkiK}M-OQnZSE+kX7_-OIJ_n4)-|vt$}hZn{95G#>SbYZdG}rT zlv-jFBMGm`M8e;Uz?R#cy7Y6$&`9^&5rXjqCeELZf4CsJKI2eE!dkVh)9&Hbb0SeZ z1lM8xOHDF>1afrEsknuRas+oTUq4;tkw(u>!pc`~Pgqt1UXY*UgpAn1`^p&d-jt|- z9$t14J|f24LXP{;qf0horbfCv(FlO7>k)eNFhh}?7{w6j_WrT+bZu2S>(!zqWky{z zUPN7C8*!F*eV_~KDY;6lY_-VyBq~m;5Y{L10uK1@h%=|FkIQRKKTP!Tu=c*hD=73s z?Cheh{3?mC&#Yl+n(yE`I|J!_HKu~Y8qIgcm@j$EXG0FJJ~!4^uzcjzm$~4U&ibTx zsT(r160u62kH9=%dA-_cbjoi^A7OH2G4prKbFvoWGOrkwx-LWO2&n_A&`WZ|=uz-q zoPZCc+;cSaqk3L9P&gd?v=6e|!Q#j>4dDZ}wv;4%5XP!I3|7!>?3)uftZ~@q>A#dH zB9Q&gZb0zlf)yq-4(Q|wm>jhTIWe^@*yofTWU#qL%L)1MJC`qAx1J~_w7|f&)>hYYa_l3w)tt*R1KLcCqTJ4+zz(1+7s!q zf~cA$3xX`sCtuw#Iz@UXT@QG6`qjo$r}xBm*@Gvsr9NLPNH9)VB{emb%DCoce}K>S zdi&5+eB!RixX{9eFt&>z>fJ)M*%F@qt2slu)2H6q$<=+~<$8VS&m^R}%R`{-6mKaeyhPf}itb=#M z`V34@frgHt4l*JQ{$!qPxA-T{g4L1of*)`uh{_j>an{xcNruRRr+#pU7pK(dUg*to z@yuAwzY_&E1-~I~Re6Q5we*!^*ZX$}X4wH38>v^HNvgtc=LB~(>gZp8$*qP9PgPZ1 z1H(FAQR~-1xGc1ke`6tiq^)?N7Z-DMbJ*Az`RMbLO=$UYXUhm>rVq!rnDI8L@<$@h zmRvJl*HXPK_#k*skWD>6>OpXGFivAW$1N9bp|cd52Xdl#1<;3kv= zNK7yA?$z=#UNxL>J)s5Hjyg`qi1JcZo%i15lg!__CwaU2ip$SDGY=mgRCc{4-&bV# zou?n3EZ^5ZLc%WNbL$%yj8fpf)oYJ!Jmb4nz}R(Xxd4gYeEo@>?CjP-Ka!7#w=q4( zUZ8tPWm>{h(fryEDV~#iV_Iu!l*`5<3*6*_w=n0hZ-5|R+&mCyYwM$m+#Vs~%MoyS zsle<%LYjh%wLQs4y_*vz;ky^o(s|^#flHRq#Y2!$vGoxwnLInGCxVx|zsK@D7$bMf z1%nCax46g#6{anme2qz!r!2EkN(f&wRIWlQuOK^HTlUJ16q1w^r>e&;%4BWeyM=D< znolAd$BH$0kbzkSS)I=UEd!}&e(2Kd?74YlfM{zwUy(~0QU(o{?ab@B6p6)Lc}*gE zd-r3CJE!t;aqj;ybuI8ruWx)Px{z+lk?680xkVDmQYSUnlS?9(oRWib%`IbUl};+P zWpdr=pfwdm8eyAMtR)q-0p<4@9nvKpYQWLY@p)!!i`&E z77w3-K&aCcCTllG}_jHg)`$+iEsmU(bK<~{qd+33ec!NnAbcylwZ8~)H`m5OH!@r?L_DcBWPrCQ4|KyxO6wI z{=tktTAr3=1@6^bmMPR$*m8bH-wL}8$lIwGZ{lUcY4C*BH$aMz<^=AaxW&F|>zMS+ zI;jQvx2KU^lAcYy&{z=63po`CEpPBDafdhbP_4==i!2v?uDBGpRtVbQ>UAe;d;L%9 zH>!3#c+9;d^P65nu3y->*+!ou-Pzr9|$el+6i-cjMEM+&%? za`eq7#hKr`MtZ4#pGETXEU@2FFG;fd>sTG}xH+N*UuhCa5stgxJe-0c{(IP79)gZ} zkOW&-G&RW#RM&O0c$_xo8(uCZa}| z@}&uPu`72t=7A@T-r0@dimmUNWoeZcV*5z>m9RZ^_9G>Uk9R2npQBnT~!k@Sp&~=okN?t_rt3!DXK3Q zpQ^=<(gnNUK;>tz(JznEx+oMbqycJ0u^t~#ev;9`u(sY=P2IBVj3g{flYRt`c?+0X zym(Pl9$H2|J%NU>tYbA5mvvy9)SX4|9~wDLQDS7oG2>@fFt0_{mK6a9$OF}7b0@6g zDzZSb;?E9(8I4fHrr~_|bNQT8+5q+Vax%D}sVFUnR;#65j9rOts&D|L*Cg9W1O%xW$&S1QV7; zv&=k=pxv%8(qDMp2oyg*r|@0)yw^rn#ge~*QI21a_X@Bmuz_t5x9 z1u@@P#`j&j)Q7b8)FcSNjfC7eWv4~+y`P;&*3!lvmOA_0*fxik^l9=R`zQZU0@jGa z!X1KRwY87`7;3fEW~Lu_j{(pv=Y4!+Lzyn5eXKRl5NE3#Edt_Xlh4iJ!6iVu%wMCJ zdslwYuu$?aa34@(NAA%3-X7U~=608>oj5sg9~>q7CteMYbhzht@Lp&I3u_9mjU_At zg0T1MEqfmAb1ar0+*l|fPrcIPyu=Y$B#TRq_ZMS@VeCgbT@adH1@{za4j$)KdXJvx zx|Mj4wAU9_H<{9Q;g5|h{i35S!Vx^*703|yDO3{HLwDKfPDQJ^agkci=$qLu7cUX+ z`C_>Et{{4?Of{THpEEb<+I#nbwXFK{E6*4$N?l#DFqI8J>ER)r@`C&cTnXx;O*%z& z(fs|-{(glVXLTp*qSBNG(DG+Y<1=65tl#6DAg}e|`DCP~wGJ`CblO9%F?!ke;-lJr zN)Ov@_6Iv+N+v{mAH>`&4eZL?E}7ff9M+`er#fU|tE_TMX{|l+WY}8d+=Ov>td{n3 zX1}F$@@773WNE1m0MS3^vY_icbw@%EA!iCGHv=dio&{6m>#Ji+Y*=Q02J&_v(z?!p z1RSX!B;d3(e_gjSu@GEB$nS%S%5n~itNv|V>|fg~j)0Js#QjxALKTLX4ZXEfifg-0JRU&I1WtZ#U>nVt>dmp z#K~RfBr$fFLn-j>xO}m~_pdIum6w3+t+8FQIebfk*exmS+JQk2tALsDRv!Ov(ukt{ z?lUOv`IVE3A&ikdsj05F<>zf%7`g<2930VoOOSU?&BR>vq% zm5K5$*!F^|^{MRZ2GZrc1=qGqF8QAKwN`Xktbls?IRcVMmu~t}Z(}_(a`~D6rW@4m zgRJK0KRtLS>v{2zvbYDZeY-RB&7U1=bJZ<(mL<9c03ICmz1=KM6Gp}WJ|kTRO89eW z1|*0T^8>b&jzI*OxPAQh(eJJRIW+nv$#chlt}3xbgRx=N%r9savg4ZfOb19$wA>u` zcj#Z?YOyM0NO%SAk-YBTawuxD>62B-fKGPDi)B>`f>%^zC7!&h{weBIs0eWx9ZR>> zF0nfP=C$cVdRISj`^g-LQN28hp)_h?6qP69ASyMrnJ(M5c7S31^Eb$~ovMH^vdQ_( z+>E~ueN%mThxS$xiOJmtk8Ob0#UlwMQ0YnCLVG}c^6mPru?HIsh( zlK$b?^*LkCkTWc^6kn#fifg)`9L4;JuQ^+nJKu{nn8rZ`UzrO_bnyyiPAI=cmrheK`tg5QqhNRrHC9B zenh(epAJ*-4%ojli%Q(A{_yYIz(gKolgUv)AVQs%l3H*|)Q^6RROG?U6vJb6ugFu!eC)Z3^G+z6^ITDBR*XB6xM~x6X8=N*SYhMC?By`uf0k{zapDUD|3&=##+X zS3Vvj==;HtOMCEBsw1s^-GS>E1O;NS2zUdm`pJO<_gi!V7 zkcSkpDXblMa;OI%x3!GioncVt?6MA-L?;mRF-|H9IlIN$&yE!b42M4nyzSH0-)|cX zMW%xVd&JYVd~9D#jR^l(6?+n^s%xMX8$T6Y@*&OHg*tB|QWvM>-G|r@Kw#V?JJ_yG-He{w^F^hY4=2*=X5&=~U@_IHT96rVeArd6%_78r`=Ro(Gn}EjDu5 z{dlrvE6cO!$efG2JR}tRbj9Vc(&;}6YcsIc_G(J8ZS z=CT%5LehNDl#8ysAcs;vOm6CxLT@0>cSBCqCd%E>%E12e`S9hY=A0imGj%PlBMcpi z;zbjiND_yl9dXz7RPv~H1UjvBwO~}=T*(-ZS~7LY^J`)p@x~Yu)0(HJvLkVghz4<60A3q58qtjMD*S` z_woA1LOVj;<3k?HG?&fhy40aIii3l~KW%xe6wNh}d^WIn`RbNHSmCj6>MgE$Y87jDuZ?-`5;}{_U<;bI5YRf&>Mr} z79Xx_Ht!x$W9}asXX+!GBgZ$hKd!1D`;eAK%Asp|NR?#WAN9ruA7~Cf!##wRx9^W$ zLZ3f1K-`L7LNPpa`0X2BUrhAV+UAzMtmEHW{y3DQLo4}cRERMX?GB#x&qio3=%nHc zy!JTdSUAF|Zm;ne_Q0xoRbmb_4gstDVuv@83T5wQ;+Q?+q=}($)Q-z_dwqWFvWAjx$>rppwy!C;cV1*zqSC1{sHnJ&zh-6} z>he@t=Jpy{l^Aqyo0(`UJHE&}u8&-MtC9MAk^>(wf?h#;%(I<%zd5>8fctjMpZBp$ zvW6W*%(o#Aszz3?5LS|VjDtyT_wgIp&sTUdu1@T-_96c)PKWCJ*~|%r!o`)j(U3J` zN~jo8^~*LT)Ij?db!w`foFNq?fRmr5_sVKSe~g3J5d`rAQRWYv<5Q^F;MR?2HrM7@L(Znj_leU2Z- z-lUa+>KZH_IBef<<~09YeZ;ngq2_iYWbmP87c^nZDd%?HR7_5e2oQU7dIQDZlADa1 zC^hRi0hZIJZvW3xcqm?7W}%UaZ-E_Q&sXR9Ngc(LZkdA3?uON1AFE&5FByD}q|zdJ z+0-s^LIx8PBQV-7DCC=}bDW`HQ` z{{vRqN0Kb%DmEh8z5M~uEY4r>=ZEJAOJ+VL9TYRG-nG?deCYe!VG;L7nR%q-PQZw9 zeU<*8t(+6dTW^w}@0^aLcrsp>;^MFLF!oH}D3KQ~;-^4jRC*RQ;4}GF?&?-fYO`ZW z)lQ`ph6JxMCI7xHSM;hzM8R0`z?L!b2O zKSzx1?n*Eee$e=8N~3ux?sm_F9cP02^Hzx-{hE?FH&+9f31XF7?18lo3mbDStW8C8 zLswjUhXbLu!5x}o3fHiQYs*P`3#>y*+(FsDg+oZSlO}xKgY%_pcG+K&&(W#80K)Ta zctc=i&xkQ6_QS+MgI=n^&-#RnWxsB5QmE@wX};S&K`Pqs<~%~lhlz=xLK|Jhx~=7| z1Pa>IA$MN&RlRvhS^R*atrfXaK4|1ap9X3PS#X2`!7B71=npEQe5vP>42kUxk?MC1 zIaC7<-Rm4aOHVqeT-yFq#OWhGX^wKOM1e6_|`;ZM`pDb(IymH&di7yyDHG zHSQV`Xp(#H>JfwJB7w_sO0q8{lZ4+3C6g|mThB75Lme_i?PN_#cACNPSsopLoL@nAXLN|ZjTkq)fMbO^CR zi9p&?C!JiLGIc>zmbr=X2JVYthppVT+OfIItSA#0?YONTBL}wxf&zen{+$#R)O>yz zP^p|UbR<5b8+fjHh2*!lVe)rvE;Ikq&VD}Kl7N@^YrSK^7O4RV;0)H9Y|)awJ>YeW zj_OC3-YZ>ou?bhT%tcobW3PsAU1!&tmy~Z^r>?b@Q`L8~=Lh>>X?4{Cu$N<-kHp+) zn19%W8!5qp1LCNLq*y=|&mXPFwEf6{^}vIba%k%R@J~_&*o|FPa3M|Hp%A~{GONEZ z)^?zgZbp|H8(V`J6TZnE?6>)ycBLJip#{%R-=;;N&f3I@^qI%G(Zp0TwaFXegR!!~5f zO%<_2fW^gDZ|IX$%UmIdAO7H=GD{zwSrITb2rK1RVbRV;N8&JSWhl`|Da^0%!Wo|+ z!Mpy``?3q3!zDOYfH4pSjIU0PM?7 z<>+k&^|HOEx0PQ#LaSN!b7H?NB}}_dr!`7Y`z( z?vah`lh+hK-Y=7wu)*%)anKaiNE|&t9M6$t9#qU9E$I0H8uj6adJosNa#5knr$!L0 z{&hTM+m#0;ct@Ml;Fgqft&_CCWC>o*Mvs(>f`~m}4{d`cIzi#4U~Aa2;e(z1&!<&ZcRV>mWoRlv6LZWXqlb!p*%lI} zEN1-`g|loJ8ZkG)1zhQNK6q~W^Ks$7#7rPJ9chZfqYfR=`ff+y(p(AYivF{_{O@fX zg88KX(4DQC3Qfa7#Gq4$Moz{lgGpfp22-7;_5!hYxu!W^q5HW|m*$@bM-M8xe+FwT zM?;)BqjcjAF>XvRB&u`3&|Mx^Cc(EC7h7%BSLxKrv@lb*&EKeE?WiVCDYQGC{WX;k z@|AZcuC$6f*Hw5f-Y{uLl4_LXLCwGx(1u%v4YJ{-(%S}g^bc(#HkX~Dw)qnJ zbg!nky)*Or$9#piIo2==Y2kI(MiW8xUgbLtY1;-Gy3fkF`TSG}?F|x+I%GCUt95qu zqk3qbNoiIQ!F*%}6vhFJs8Y#;fXPdmDf_a*EEpig!_cixr6dix17Vcx=MmF~{r)e> z(WxIjJ{VmDwOJ-~6;(M1HK+#(n$$dm`wUjJJ=j0CMfw%F3}`4bK~-$3JTCahBFVHt zP%Oc}Dy{>Qkh0E#vVTBfZPdO@33~EM(@D-?Zo4+>Ku}5in(2Dh$@PbRt|Q70tV$r1A7w-2_J2Ev zx~6yv`z>T3mG&pkYg~xLjDO<6T6P{MD4D$&>L#}(V8PlB9@H*)hIz~@n6IH@VAx;%ZHy-hyz*Fy(zDENXO}{05b-T2_x&6peD(6t%0l$~ z87XK5i2L;8Rh468o~4;ch5-eBfRC}XyELo)k&kikFzpl1rAV{lY7**@t~=U0h!PuY zY*pK7hZlknv zX3UoLb*_XI1r#)zD@y!cktkgQ@WZCQ3xsAghqmOjx$D!~0gXI$D{YYUf6)!(DD>JA&CywXMqR#WH+U*P8q+YVdxV2AVIV1FAHhGWX|9E(|f3u`fDsM09M$d z@5~In1xcA23R}TPu6B$xch@}gy7EgZ!5)-cFf6TY@SH>WiJ_~XpBAVO5WOF2Vvc7f zUO7S!5cRdJ+L6&MT=6WugVdtlR*Mml`)Of3k3U0zs27#fQex8F)|p9ic^mz&}B3AI;Z_G zZ zgnfbW=Dac?S+mRT66($auGMkO^n&vC{DM#po61CyGx%W6!reqJ9Flz#?YoH^!G*XB zH(`Uj(9c;-N+(r22-mo4dWV$klcvay-}cgqfzJ7BRd z&K1@+x_RE)wn?;GX3uLVUDwHs z=|M7N&P4%;vI~RM>78TD#?{JCjhuY{w>)U0tT&et9L99OK#5b0xfOqZT6M7%#2D!9 zZSLxl&58cuy6!sO*!20mpZJI3zG#Bia2cek-%ahI_;lEH4gOZ+&?wr~yth9TP!zx< zZYPG`pRq^w{K5iYJtNcko7pzwpAfjG-2QGVE%M`WWfbeWL4ngOUwgG#eqfXP-c*#^ z@}W1coU4b_)%A*^r_80K0aeuZo3?V74>u^ScRuJ;QvN;ZDxZXII{2`p@EmTLYu)r( zqA)HqDo8y$8>AT8{YRIhnvx$NiXF7tK){RIXfVN-yVb;$0ys0!!}*A5G@Kj2jZEP< zM<(O~o)Z^KJC*kltTfJ$M}IvWQ=>l{l%D1FrW#N^T=TadG~iT)B!WUGy(q_+@-2RD zkd8Ff54}x*o}?rGR-cIuu7#{i zZZ_c?*-oGXc7s#C9qiHdfGy)xyt4uV4E6g^d~@;(r16ma4E zk9~%XdkcP5d{vBMSQYr_h0o;kU=mu-?*xe5LD@VA7^&rHkP+v$K3VWZ2mHn@UNOu# zdvaL8IowS!DdOqVZmQ_vf2XYCOMRZKOC$1<7+zA0gPKy)O?Q)7&jJlcMuvlk>24Nq ze>K~KxG}`?DeukX#Gl4i$H-kE6uz9pE$D0zgtB_|*@b{RSaO!b&4y+6yJ;j1qber7 z`w((%x|?Him_gUY=>yKH4~`2KWGkS2A_TV*2lUOBfuVqgP)Hw=MurY1r6pdM1gD80F5`xjSGrYrQ8G7=DH?>jk_g+FByJ>`AQiT{RvM2288u%Wa zybod8+w3pRT94FKY={19_rM6hi;HgPrTtW#j7Hq*X=#|8_WF*G2bfa+Mf##gK2`mP zsr_d3(BCe80Gn#V7#vK{oOTdyqhddIn8Yom%k(Uf0H%)@88EzJxb(Jt|3*S%!Hou0 zDV`95qYiEVY4p%@jE+uEOK|^@WBP>i@LRd$8VI}GZaKhGHA}4L%5_=zM1*HqTEwkm zdlgx2wb~T7X(W2|?}Lh}p=7=edpEHgzyXaT;)n@}55zRUDz``2SASfhvcU)=uu!=+7Cz&3JvG&)A-}Fc( z)2-OpB6I~sL+-t^+T5lOA)zEbfF!wE%K2}ePhl5<{ogJS>OwYLKm_lL`{+S0U3Mdr zZbL|P0#eX}%jhxDe0H^?&MMEj^a{v8|I4ui>lu0C^#7Co*)Y)`*(u3Ci>&z>>?^M~bZG95x1A2O14@@_P;b=y9EsGl4J019(F0nczmW{x#V6At?05R7 zbIVBmwQWAJ*?J0j;D)8Z*+U7>yyxn-i&CPBpjX&8Y0hY-BWAJ ziv87BmvQNlOIOuWr7)L5z*t(DV90P{q7_iR*kTug9BV85xDk{A=f~OFf#c>VUdy34 zL=&H}D7lKYOmNryY2(s)NM=KL8^`c5?5M~c5@w^Cl#kp*^`^Z+a_hsBtNp#idhkEBe zdMQLRA}%|F(U|VW#vi`YbFhDMWKfUlZzGmdv+a8fu5%lp(Y6yIpJ00Bp@A);hSCbA9+i%(>Q{iZ2pRKI{ z+O^w#L3NFE3z$kvy@CYTq6Um(x*V5yOt&>Ctcr9R|A!cF2#EBJNXet5+n?97`(pYR z6#J87cUhZ*>Aop5EVKH($;ox@qg_~`3455_3+NlDrl5&!$umc*?ALDlglFi@_tmX* z$eo3QU@Ar*8H5OTJ(vms5OjrJNhs}_{ZfjvP-Z_HxG!vXQd5k5L(!;y<4bQzdWpL> z`{SfrHSq^`b6^QXqRCcRN5t#ri(*_H$MdpHM)} zC+KHP`(mtE;*9&p=m-B`7)&gJ+Yml3GJFc5U<6~voW$C;0oKv-0y|=(n}4_|05045 z>+6;fmUoAI5nS<1BIyll)BB9wNAbD*RItxD!a4{eat)wC350TP1e^dzskyipCYB1} z4~<>ZjbvGS9-A9YU2&Aa=M{u83ZG9-Kma(5jHJ0z=TV$V+vp2ysQ?{-9UOWSZeRqs zE^%wk77FgvyyG@~{McT2LDF%)$+s#7>?)&!c>vnzVvDay{U3NrH-jEZMN^c8)hlMb zcPPz*Q&4+%T5wt`GEPlTIytOLrteMMHLV=fX2mLbc&J+ianFJk^A7Ef^0rfxRFMcN zYf-Yfx>9E=sP-C~@uTwe#<7fYC$Kbb(hwLSA!O%IK0b9AAi{AAPwSAw4` z(0!-o^GgH5>u(U~ehz~6Zf$wqk;0mztATK&eiWP}PRpStn<5c%@=CWZO%4Ulac1iC zPn9iWr3O?Zq@-{j(g9Jf6Fo?1!%sUU|I@G0mV-D3Q>DXAj6@GmG=Qk_oBY~07YM`H zWv*vgp#1P2n(eYU!vYR642FQ}ak55lC9SL20;?t+bL{~N(jFN(rg5+m*5KMei~CDgzHgjKGv|PFD<*S#USfK~%|LHW!GT z0tR*zKszc;$b7TPDzA;)+-tx|b5XFK=e6<4 zNHO-2Rt>_s(eC-cbcuZ3E7}>HL*)oY=-v=xp#&NXP9J>hV8;EKD^QmG<0(RN!vcFL z&BqZg-MnYrpOVDj$51rdL08}2sABk(+wgJE)$Zj4WsC-YET{^OV)bVTY~6YAqH}L) z>wk~Jq2F;)KMj;FowC~KTuXyE%;bhzF!b*v4n%sD%zhSREeq16PeMSrJS0Eyn2dV% z-XaO2OaBIp`Bp6eQrAJUpB_Tc4D+nX(whuh*Q#|yYzM;py2i98ff9WYL+7!n2g4CS zsPaDjXfJ^;(E}RWJ_SuCM(lu47L@hE@Y@)In>4=tbv~g90=3#DH!+(IfR}1iZ{)RK z8;lQMU2$oE*k2|F011kTGRV(x4M1|q-9}zFf&0)bvNoR@2Il2ItwoZ;V0)rL zCOfCk#yDR>fl#$0>>%nF%#*I5{mbJ38EoT%;&q;OiN|rDVjzwPR!^GO(LvC^>HG=W zqGSSjgxf#D+Uf}LwNwZ^?dJ?;Kz!zrT=I;jya>#I>4#RGKBoFXGX#gTWYMc{5G)6U zc^iD-_l}Wx6feGLvj{?M?I7m#mc6X>5v&gd7Yx`8_}Cgd;nP)|Cf9t7DcCHNh>|nW z;h=BWf>KHR#E>mVOr5cfF9HYU=V%|Q$P=)n;2OoH1M$WwT`4wy^Bi=g%>MsDRSYYz zLqM(VhvQ9o1~4-jP-!KDdS(WH!hjRo7VXBo6txYI+@r$=`IJKNudu>@YkZtbbB=6a z)K7!_>c9DEP7lYsQPUTcYYq-k#JF7Y03TwLV0vWr$>xT5dpZDgwl`f$hv{A#jR5vS zcO_T_RdUH(EMqU`a~VYsp%f_MLyd@kFG8tPQmyMVT-G7wHsr9vXQ=%o2a&6 zXqMowhO*`<1|I(ylc0BsU{1h@xvKt*+{6g)ppc%9`e z)8z`NY}&tvAY7TQx1_khX_@auSHi~|9XHR#L%f3(GZj{wcP^W}I|0r(!85lf9Hg1t zfB_=f*HvO+mu}i7JkrO%EtRZ-3BB`;HQ@L^_)KzeUAz4@?R8%03+hIsgq}mW`AlB< zXKXgVH+vd)M8)Zsfdc{r5Uagvv;9K2k^p%%wDIwF*b=Lo-&1&V;2^lqEchSN)pnR(5X-Ia1 z2f3Trx7AGj*%8^zFR)9t2i@2QuZPi4)1Gn(-mEINo-AyiC%q>@^c_66mGY1IwS6S`bbfm=PEUOt^ z58^cezKQR|0S~E%`k9EYc7#-L2qMRuPlIq6iMjibE2o;#6AQiz*C5{+46|;xR^%Ta zu$R8dSgS9ePOhc|L8$WC3hqhH*jw_*`~j`0*5LiB*}6QtfSAMB#v)pma12teF?!H>QkkhN!sDWzdee!kU@r zH&5vo9KGv$p`RxYtU7d6za`LGf+);CK>TMHTu5$m>0#YPZ|gtVnN&@N*vd^s zg{1csn~swCxM6*!(f7yV$fFE}mJajk)AS`R(@aO|Os=RG>{+0|&vp9?Bor2Vu?ao3I_f_6tjxt|z zE7O%eW@i@6oAjWaMr_6xQH&0f2dU@e481NlfsPxY{04~JvsKJ0eTXs5I>4z?`FS5N zX8p1Q9s?08oGc5krX$Q_9&qHf3T^&@Fc3C(A@Dt@0LnYTY5FsvU)6M|cV0EU3cS85 zEaNZF&K@8vhPOiYz^mN>1Kt3WTdnbz#7Cc_>)55)z;kpia3mVwWY}Ttu5k!tutwPBZun`59Kv4XMO6Oa$bM;eR2Z+#S zpPJPW55?B)IKQ8<6JCf3%2>Xv^_WSf!_hFYXwXjB7louA>j?TSx36XS52T-cM2M;8 zl*}I-a*)16Ggpr>PxUEnCo%CRnUb*q9aV{g^fH<`v@(y~j7DA_F%b{8J8FqMCy!&3 znpNXX`zDgg;2^8iwy0KtxW!1R`QDsfr|tJqb|QytM=?OzXK_ z7aNwKgOtG%?dj^_o*j$R!ABGE!j%*@f`fPXH=$+A^E0zJ*gAV z3lw^+6H~iBW>(t?{hV}27+xlSPa}$TUV1O9@hB6`Hrktbqu-DnW-sJ)4rM&bY&?p2 zCrzFJ`eTlRPS=>y@*vpb_qVJy4xsvTXv)M@h1KlNfO_L))r+}!!IQ#>;1lk zZpp6Ev?5_FG94Jbnf&b(wqJW5yS&Bx)#NA|Gh~)@x0i;0BCg&}!gNnReT`p|)SW4L zJ1DYuge4l~WlHA57pHC~Rri{T=eL zc9-Z=@Dd=Tn=L%_LgSkJgW54*r4-DWuc+(%cEttN5`0xXrvwvV^^0XjK#(2;6oF1{2l}f={Q&~QtPpp z%yIm60vhRs*QDlQ8DC9dd0?*Jd(q;dT2pa0Nm2vTPu!B-__ED3{(T;s`6|h$3ElN0 zQ*wXQfpM&fA2zPh#BYL)3G7dV75|ng(Pta|W<_G&?-{ES#lvT99w|SU54&CvNF2lI zU>t?^O7J$3>}{0BqxFP9A(G{wgYPtDAI`3roiDEID?=l=2~Kx z``C;ykprv=C8Sm?+>WnAHn6oFh4ogX>UvXg>2?y{kLcVvoH0Rxk3U<*F~{iuP#x&% zw^#fFUX97-r>zs`!v?l@^sKNZHNmR_2gRJpO89DUMB!o&z{`me1#HrH*{7SawVj12 zIwW>x6{r5ozt2r6>%<{0eyax0olDXmX{@xTxj52;EmQI4@~F-ZpYg{$88s;bD~%)~ zR3A(_KhUKMbux?Z<+;#SjOaQ83hV(c;N2E(YEmeXxrXi6+KCh-YQ-I(V~bs>-*eVk zU`sPJYNRwYGPa7tJZ6DkUGIO*!W!rrs!=#ocFeaf4LrdAl&+-eC5Nq1I9#zS@@%A+ zBr)nA@A}Y{Ik`P^u%PwW7Dr)~tCEqVTsAuHKb0$pSVECY2nhVgt*pO*|rX;b$KT2=_w{~o+lr{c0 znu&o*6e(iG%(j;0BgheAmu04dp?-$I3@&3PU$x-5jr~Q1moe@-ab16AyC}Jd zPYG?}p9&Gg@H$X(Fc0TT$BLefLJiN_&L@3a5#fzQ?OR z^CCjNjPnB~voSFlX=)E)8YMNshD8l*@f*(c4r=0eT^py@sloxJW9WFTv(_o%}9K7v6iVBJAgLh}iU8i-*4_q)>hT{$4sTVP*7 zLnIO*XQl)P@8p8mEE#hU8a5r7(B}DN@PYe&Tj+n`T^)R?gD~vH(K6=i={FrG;@6Fw z?NuFdcv)zt*kLN>Sdk!ca{wP8%VW{CaP*UQg@mcPP-kgV?al(z1mbB_V1}2zlXfv6 z(~z!RQh4DkqMZ<{wazo?U7)lwGd=U_gqJ;?9C~-l;w{R1ZI{U_yV%PwST*-WGD_~x zuA>&FfuCPo+#dJH_3J zC7+JQM7x*ktu@gb9Jc7qdvW37o%2!Mjd5!~bq-Ffc-GzOVx;-%H`Kkn#DvO+clkZp z@wpG7ywy+*ZkBq5p0^vF4nQ@w{o+|d=wpL^jC2^!#wpx8NbZSM+a2*#%_KTiHn!^d zKSJoi!oE@+CRELXszXu9$XdTM(RFBn*CD1p2f4le0tX5W?ITg3zR6?5j+R*hGnS1f z8M(Lq!k)X>j(>F!MFDe>>&_~FO(-XHPoIPTW9ieiQ*VK~>XJL~7IkQ#13s4T(x-J( zRi#hZE3p>jzT(Y;x)d*tXU^03cxhgOFO zouL5Rzt9z`OBr_<{P zq?Hw~^0T2PmCFiRs0*n{zSI8Bj*j_*a$4&zJXYKHBhE~G@eVs7;RI=Lwy*cnv%25D z4nc!5ULuPm`&(01d-Pym#8jUn=l<7@(q#gR-TNMNOjyqU5V3QhhE;Z|mp|&j!#?@D zGXKdx4SL?LpL%VfGRV6HpP>5KLw$C5K<0qjq`GE(LUSz4aoA-@3G=>1<7FZKlgscn?JXblge z>V0Qq$o`2KI|8+%m0xJrow6ntlm)8Bsf!j0PPJRlv6}PXU__4Nw~zqO1&ez(C)uWj z3Rm;WQvVgrA7f}yb(E6*3KLRKYmOO56n{W^J0U4o*um=k@#V8tW0u5qtQwYSaMj~i zHQ}@4u=|!GPp4M0?Qa{Mn(*|7Zpr-wUvnCpzGzp&$&Z#-4@!28RX<`Y=m+-BExMJ6 zMDixS`ao-&*#VvmhCWAEn~5pa;gsSw2o!!8N+5fm)n~e1XJtv#as|xqgO3qZlTs2| zq5RDdGz^pNLtGgptBK@1w&)c!mnuuvz8NcPox|>B2aeBy4ou?Tps-{WH0RL`bhPH| z*#W8lkB01{*EBHaA8Yu#7kTe!?nYL?5cD z+!`5UW{4 zZ>5;y)4>JTKK>j@#^3^HrZC3}W5>+HvjG^8=j&8#$#`gZVeS96KrHLvOUYBQ-n1S?|^h56%6ubkh0a*u0Nd90atUPuy1g|}ixeulMqh|oI3 zr98_@6}KrOsXs1l@G&RZ$cQ6M3UNtvAsIDh;k-P_3ZI`qL3fa^=}#hy zBTnS2EVsKlez0n--Bp55ci4dkNZ*$EEzL7n%feHfwW!e(ek!;ds%L}EhF1QtZt?m} z(N_U?RrTzfg@XPc);kU`CrjjgzwWwmVgWSz>Y>I>_+1T)D=5-oq;KWLc+rvIPlVNT zKk->%a@NSwFog5B!X-GkF3stcDSEw9Yc%wEL#R`Dtw{NSD8I;fmL$77sSn1EK zpN}+!pFr(U)3Ra&--Egt3EOKrIrQ_%__v&rBSuVlZv}E0cMzqtVEC%WTaLDo1Y>_@ zvNvsHsP+3uzBoZalmlf}TEZCDwsI#PR4a>YKbfwb`za@<#NufieuKbKtYs@NTFfhl z?`$N;$P``lKE1VmqHk+W_c|k;mmiOb|5#rmFFNUDL>g~>S8!SU7?-vw&W?_F{x1FV zMas?&=m=8Qqbc}}wVfKLou`Dm0E@B;ifDGaR;yC7qBpz^5n|yP>)CM(+470MQlX%k ziXaxZ-Yo$S&H31}Cw~)d)}B|mCPcVF_S@XJQ>tg7qQ{T>0>t_r=d}RQxMz1~A@0%~ zsUN4&oltmGbAuM?p86kER{{>@`o70DCfSA-34?5H zmdcW4WJ?lCS(1>F4%wA$Y>g~+N|BVcPCBxVk}cbaQYoX5WE-Ke#URTtX8zAOKk~n> zbFS-*!+hVnJ%QuOcf98-FJ_hT#lgOb_Wh_qm!~mJmW4;LDw&V9**uXoB`bhqIc}uL; z%k8q6C+w->lx}HjxgxoCCDn=^dDYJUnq7;-7PU?c`Q2#PaAHOKz%2Y>#u**uauZHu z$4C@1-pk#v$UE6q{QZtk7>nTii>;DvJSau=xDFy$xVhWJ5gVG|IroHxro1N|tGn~YA}cR6Tzf5^23)2gqSqp!ezfO2dgM+HeaIG#cGs>}jes*gK57 zvE{=H+~L#rDJ#D;GaS!`m~lCcZDO@lwX7HavVrfb4NuL9c$GI-CQKW$k#qU{46b^@4U(u9V|}N307U2zv84)_S8z#FtB_?`MKZDxx?Y zcqPXTo(}2#Twua7Z%@-!TaW_+1H-L2TX$A;XVdg`m@qKetq~!MWJNv>_;k?r{?Iba zW_a12CbavDDb*khH49sAYVbAd)f+a1Ya<8o%+jFA*br#W&S3Z4nmb4&v0IEJ*2b%U z!C-_&e&e=K{fMEV-i{8uRXG;D^x@w)=my!kM6RLhkUtR7Hm_jT==4 zEvRiFmR)fq?Gn~F3fZWltT6i`-b0pP`tGCHd3cD)%NI_dwKSu+P>;iFy_(#`wB9|=q}g*H^UDNUdI>t#q}rj#$#CwDdk z>1B@8f4Q_ZG82ghUBx09fMD?c_tQ;&^H*`)*8Q! z6L|isXEYn+lQY}1NQs}+4l{WpMLvK=*15Z|m+(mqxpmu#(9NyZJc>yeoX=~Bh&U^K zNg?Oq4V;qB(J1=X*zDbKM%=|$4m}&#Gb=;H54JBS4$D|szf)P8qGzC5R0?rJu-wcc*DG39rV<+61m z#{`n54Qe;4pmikEbI2qL5fE|3DGtSBeXh>k-X5IHc_lu_;FoG z9FZ*cT)JK+OmXMz2PwGZa1&Pb94MDMdz@)<2y20+Pq$iclZYgj@WRCf{kbW5j;#>C z9-Eso`9YTqserbJJ?Dx@6Y+!{F3|YzrQGbo4Qzg-9_IerVmX&d2++^-BaW*(Ue4{* zmIASr|Jp?PUll`mfWMPQGs2@#OeIQbM#n+#0Fzs4M>x3~<04qvKp=4sO~B-1H{+ot zRgcX@uU;u6V$bJo2=9l@f|-0y`w0QVo{1?>w=gix5<2Fth(qm-N@xSz+ZoLr4J{bf z9Oz66JPrFnfd;i+&BtzscJ=Ocv^e@TOSBoJ)l;UUi>YQssw2yH|468W+UHu~%Rpg7 z2u-g|aLj8VUv-!i6nJ^`R@-esva&KPes<(Rvi5T~s@QWo@0%LdI^+<~oUx-$N({r( zP1vx_fd|T-jt^)BRdawm?}M7Nv*c?c$B1t!?`+^ z^=;OCh5GpOhTb5{!(-jG2Q4brAS{{X&`H8pCxzlvmllMI9`t#&ZeT1Oe9)HGdsa}7 z0hVpAQ`Oh{Y}l>EB_1Cozy-3FMKz&OK!$m^4Hk^L;kEo8)fHVHb!pgCng7$}3I35w z4c{zgPw?1Iyy)PX$;&Lm@$FUBuPk1iJm~bG`9@u0iHCIAb2{x&i1}z-0&2Fb*v9K( zU#~`Qi@py2>cNb$bfnB)nsPGpJZ8R?8gXu%=UX=Y^kpJnRJ#G91zuwgm<}gz zPKY&??lm0B*hP2b8#_&yoyZL@<71kBYPrZ3qTh_HDeoIScEQE z1nzpKW#VQ-N$*V$01GJARy&|^Oe__|cdqnF6(#Eg-vo)yp^n_-vN$Q-jJ7=^_H&~- z<9#zkb`?&i6cJwKYm^7D5b0cD(YtBt(wK0Q=?Y8N9Ek#x^dJt%a?dN3g*}gx-*})0 z>+>a6H76|h{eR(u$4U^<1zm^p<+W^Ej)Lwu?IaI{!WQ5_zHuv+(^N1&Qgq zfBBm+^u7+pz|ZL5;f-+@;K2I7wd!Z8sq73*NAVT1a)=?a$B##go=r*kr*hjNN=}o! zhKH5CZ)*~$P4MH7H#6~jC8K)Con%Z#%5z%)1*Km_T!=sF;@vi+P z4q&JdmxgAMvHiMm*j{biY&50dlR+cQ!doi%@W1t1dI!-C0pZA9RVgshYyeUK;d<58_KqZ60KE4|!2%_ine%sfHM z@xqBs;hplT6)^YFAaJwAXvzjsy;P$UAl>x!LUii+cR=W5|P9Rp8 z34={|vBwz3O<+yI*Fiy*&kF~{g%Y=|NS&u&kyVMvGfVR>OPC}TvfE6LN&8S=+8zAX z(P+srbfa#E;X-(tt#~;PgG8|w;J=NaKu_2!t>+5jy@ce+u+`jQ{0X5oW@5#f{v9T_ zCWnMOo3eq>xSzIsijj|fXAGMq;PH9N!9Bi<__G+rCg0!4d9zRX?`6%y(NAM$mhZwk z&6%2E4F@5ya2NXF*ISK!_WnNWrzgz9SRyy>Ona$jmSl)rkoV8aog884g#pMVClO)w zG5UXD76gcx^dF(1a}$Q)X?L5}Wyff|S)zK9L$RBVaud5EbXgzsh=ir%&#V(`Iq8g@ zy)pB)iMa?BI(fth7ABHWv8;%#oL>k9Y0Vdtk{RVO@1rLSq z&lkOPlr`RfKhgK}GYs@j)99=N6~F*-gcecFn44zLrr5geXR%?vGsMnR8JV1*Wx5zz zngv+@C833I+P4%6{LCheD#*RB z7h#XcFiq3wGBt(l_TanTAhv~ulh59}kmch9iezJzKZ82X>BItwJ_ZlREu5TPlcshNXd zr`=Meqd8V$1I>`$!?=qxIStB<4&P;)DWMz?Pd0{2N5|_xbE~NXZqtn_mkVx}QI>vE z(3t`AUnK6np#_MPS~n^INSLWnR@R|P+f9r=S7aqVDT!6bVZEO>mQ`n#F`uyJ)!CbL z@sA>hW>iU9r zR&wEg3OImMX2%H_2M1l7zCw27m;}l9e7O!tYOrD>L%BgWOHzItY!fHEFZ;RuvqJ{r z6)$}|IT;$i=e_46yB5oZ1R(-t-KT%8xVh$X2v!_b1CyR`ASC)P1$w7y^w+Z?zHGDE z$jsbfo+dIh>{i!~h@f@<^i6#~_V>`_!3PeSG)AcHSii@QhJSM7ZJ^JuP~$Y=XKgYZ z%*x+$52CVKCx_YvGoNq&J?)nI?|u;{V0A(sn|?58;)ho3%-by?fvqtOG#}lwo8H)+ z*c4WpA8b~$-+kIn!0VMvvqu?A!XCHvu0i?tfmEgsIs3*xwk2{_dGB?|J*N|Gf^jom zA5-kXaRcaaSCy7WWO8VK2OLd~EWe_d(g$L%M*xpYja1)i^!&0}t~-INo6B`N4pQW4 ztaH)_i>xL2wwIA*V8BxrL#dxzo&!Ysb+B*Z1jyi=*yMN)WEoV0l&Cj}^7GH+!XGQ# zP=a?#WNmfYPMv4(#mTyxjHaGKCB!muD>&CAjf%W3Ra)sk3N;NWZDwx1fD+Pla^IJ2 zHJUo=Zs}^IWj=QcT8T?ff5jbpBF z&Y8$}H41<-xWv@yuUjCKNU2_epgY_wEu!pRM<)mWnd7C8S7804N*KA<^e3H9vSUe{ zN(c+&1jhtvQc0*DVK?V(k|5C`F}3Y`OoYJTTpdolckW8*;v%2RFM13>#q3qr7P_-j z=OT4E9l!_f$iP2_l7|I5;p6;{p2GLKAcOjjHU4QcV)E~2a!eWbX;!(&GSLfB^U_$A zrbkYKa07(Hp=frVg|BK|t(4Q{tjdLo43x}F%or%@W|%kKrWCrLyJgP-vZBVBT=|>- zC@@3=BOc_odJs4qLg?5djc(IVh^BEnZ}rSo6K&v6jm)s@05%RubdT2}96%#vi)zre zz=Kp%o$}7`hh89)(~~bpV9(rGRlu#jM2P(FZydO>@gS4q!Bm=hoW)9Evx;+ToT+M1 zyxMUMzq?_S*j{?i(FW4Nc{^{=d~|C*<98cWu_4SR+IzO=)}5ry0Lr@GX5;-=U5x>8 z{o1L-;DY$ROJ}&RzKBU~z~p2GnS4?{!rLzXSeQWw4k|HoWoAf5FY|WQ1E$~n?|F(Y zZZnk>;$7^;?T|sa9Lyi>X`M)5t0BN!@{?U)wl1*7LMtKaj@5mt*&g^86t%!tL4|KG z)gsutc%`iLL(kn3%3odxhL3>fTs26xgK58+LYE_J!B^L^Rb?sM&@Gc|_n^QruuxTn zk7H0E%WQ~Z+W1Ykno1zU5P|1UY+9NK>N#wt2!(<8h?oe%xIWA(U6P7~Z$F)A3Z*kw zY-Z?YpMCWv!J8I96-@_9H&5h}n_kch^V12^=C2Q$fSu8)OR)#+2?Kb4v`*qC0&SP(kEB2NwR{eIYb{G=mVmu;*)OFvhFQ`MRYEU+e8K z?L(Z4d3xAlkP9qMwyDR-#j#;`lt20#yzq`qM$c{T4+&6~n!MN))2U{c*`P4uxao~h zAWZ$~#H9+iG0(4qI#6%TM1;XS8Lf<+Adfw>w1sRUj}r#5P6FwT4{WGhIRW1{v!UcO zk@A^TvzL*XA1UwMVY`F!N1BK|y?}V~)$v5H_bF9wW}~3b0`*gMp~f#Ye1W4I`Wnm& ztvK{wW~292A6}UbIh}a^bmDyaaWjTdf!ut)iB4n+eHp4O#d5mK zQSQ^}os}@ltRLd-%xVi$6-w|DMmeiy+J^KPm=5=08aU}UXK#1vt(v3l#2MR$k z?Mv9)u&U-`=2&MF!Nt*0{R8YrCI&C$?JBynX*XQ%NLVfO>hoGB}q3I z#-RLU%o_k@yJHhLA3`XZ5ND-Qo2_u8_O}=>>&=fqW%}O2o@p0ivH3GOU3OMd;&@6I zoFAw=9sfFb>g!;!MUhrb%oCDS(!_X}3rFA0IiDx<8rcaPTd`nl?-IpHaHeD7ux%bc;v5WL!G2sg|74F5Y$_&pI(PI7XFb?mXR78$cT6ck|_3kb~c)^wfoy zfS%72qZ9PB5bJ>BiS;EQ@h)D|2`Y-`p=R8!lc)9Uy%c#ntkW-k_vs#*Hf{gJ>7H|D zVLDV%GFO0YVl5OWy?jWc`EHFHs^*0-7qRkXu0pNvUE}bHl;QjdtCi|+y32M$VlB@` z2ie!xI=~Gl`&A}%bh^E1L703BQBpaU&x5;b>oaCT>-`~w7R$F5%#hW;E)4D1=Y=f; z?lnAr)^68VSenLE~l%?YiN#Ll02*Bj~uvD35J>CW-_lbuc6-5~&SwMkHw zsZwN)icrBo!AoU7u2lNZSN8)u0a?Qz7@>8h=%+4+7n0#|Vv`n(M$fEfm;3Zn)?fsx zcDld##hSIj-LW(64j%K80RyXXaV4@)NF-6tNmS zbCiQ8GIdlCr-Bs=LG$94)}s{*LKs4z|Z;e1*1+5swIQrvT_f* zKd4cciD%+=YIj7$-2BJ(3SkshTH*)7cLQCCxV0O^d=S*u(}^9CG5IFxhs+${6z9q@ zUCB2+2W+~C0_?gFc(DG^hcFuD=9_?e#;_pn_8PDWh`@YMuQ}haAxr?|U?Nkh?x-FF zohMy(!mC^Jo3)4n!WhBZpqppE>CKA}D|y?*B_b1ndk;hmMd}XX_5u@C5V?UkSEZ@J zbvZdMF$p7e?OOYXx|UJ9vy&Hv-pT4b0zJ%^4%CpV4mxfGF@7kl0F}d50_-Il- zt8ix=sdP)Eab!$v(!*R3q3-gX13Bf&&6(*YZVnhAq-?F?)CS3oWnyAnKX#_GQ9kbc z4J)Oxc+&)bKYm0@C$9eVeJH9N+DP02b=I;$_l7exBl6O8$sm$?*l!GGdu;NFIS{Ob!8jr9zI0rTzk+0O?LKJq#i@7$Ge0$&!?AWR1uIzo*yiY#9e( zheM@Z;;6M*jnKkmd3AdS1hw*T01nvrCQoF^$rrCk4WfMtX}{VAwIV0w_6c{`$pW znlEkDKBz(M$7P6BnV1!_>Dp|1gL$>JeJDk2hk0)KX*28HS<4U*hLasw6(0_9!MZxL zAH`qY4I`*007~|)i9aKcbd-42ly&ig6+R{|u}VI+h{^uknW|%W$vZ)#!skKraTQhx z`j=~bFM0TQrtwT)9oR;@UE;dO3`z5JH(lxib0Pd1iitDZ1|h3tr(dFPeAqO~KF zF^BR~BwPw++hVp^${prZNdABC_Uot%^5o>#UGZ@^9k`9`eMqjXo3c2Ar7!nucy!oNjZ6q^PN$LtoZ*J81ML5&QGu#MtcBEc2 zwHk<-cu>3eeK)0}kvo<|{~5RWb_OU*p9VFszU(+^__CiKt4L5*YK*%-w_>G~9iNmf zik< zUNfznytjYza9MD)97x-7ZF#`3B^>#HTM>@IHfM!HH&IN1@}{i9`RPz+Ws>>asFf4i zHg|UV7X7r=(n3w8xm%W=bepa@6fk1hun>!pggMyWzDN#fe(=91npk3HoNljv_|kdu zIir$woxSS>auWqqsnb=T6|8%TLas+u3IiId3W)B=vbI>RI5IZzV=>Dk>Nr>=>XuzwHK3N{32 z`CQyCW6hT#d5vM^P1SxLOcg^bh(SHpk|1^=zE>uC?i33PbEwhtKtxm?b9*V}e4KP@ z?$=G?)A1oc;^jHo-SMT>hnS2)H3cB2|2}Jm@JEP)v$6^jSzV6rxkBOD~oxPOwL*f;c?#$-!T^?Gi99>h=(0q<3$)davtXDVPO?I z?J$n-uvosoTel&|%B+&t%0F4ypHN29aU%AvasgKVN3m-rpfjpY51T*K0e>RhRyB~@ zhVOpLxIl>oma;3TI#diHshSfnaKQr0&D*gUs6*F1U3oc8WbWkkH5se~|E=rPb-wiE z@ci0JTb4p|=3Ddj${-Q>LQn+A)5kB-LSPsFe5Q{#FnkvNcPcm3+a5*g6YKib=18<>Fxpnvkw>otmKJ%GxoAJiVz!CsB3XdzjJv%izX7{U4 zYtARzX- zJpkO#w9AkK&|6 zaFO-H9J#n5y#fRFDpwTI((F*pmfsdkvt)#%i|`kXDJF_einT~1X&(_YknYAwAx<_( zW}=;){wOg`=&!Q|uR@YQdkT+QQWA=+b0@ab=Rte@0A1;?J19PLA-%edL>fIf62)&0 zwH>{HFjw^Q9>^h=d0BPj zwV}dY`PE&UuxPq@yfQthZ0vE}n4v98hzfvj8GF*0Sh@Stw|T(R6PBto^}mMS2oLjd zT2RZx%k)%mINd}oI(}lD<(sZJ3LD*XF4W|cm0%r1#Yrw?{!RCm7iAV`4)*3wRtovw zvnCwY4RzE)wv7Lm7@~{Fdf+~)0$R*IYd?b6@+j*XSRP?0G=k}!hcYF|Bia^-UcPjE zabYQ7d2+(KqeqsV(PT(wqJfk!J3g=**chP!1#N*G#COjf!c>-MVk(=Q_7V0EPpocR zlUE_@3{Xz3_T83WifA5tS$3ukJm#k19dFg}8fd|q_3w6eJJ``P#2{E*U6Xu;?$-nF zED4JXY%NH&7haA#qG|T;9cqs9PX9%@BCFb^tju#v@Er5{_`ufbKH<*Bn7DInK)zd@ z-B+eTKcZJZu+AsbOE8Z^37yB~C=U{K4L4qE!K{8cE2nx=>oxN{gbg=P8=8gkxJX0u z1OC>$67L-Ms%R@*p^*~JqzA*Rl9gQJ`Irrd4_I%#N9WFJ6hO{UUqwPE=&N*%#VnkvKDJWR|&*-kKrHler(6w|_Y zpoO_o?#T`=^ofmM8|~Q-K&n{%v|Nzy!A(?rE=uJoI^vo{-nCGx$IE?*az((cR%zsK zcjM#UcQm$Wv%du8Mlo**TPRe{lEa}ShvDTt+T;B|CrCHs_u+zgrQWP$&~F88#GlU= z7rf_&p+LEj_=c{ToP3LNWwbw>6HrX4%}AGZqLFH zgJ^Opl8@|E9^3~mr3sG{O5};KNE+MENYe(ECDAy{i5vqHAx{t`vxs5hwovp-E>2cr z6-z^L0va#lO+S4G`aoz!Z)0|GfD&RJ!P*8>yLp8<{+x0D!|PpPtvDEEGtEd~RVl!W z9EG^~NwFQ3zsSq!xLXz*gk)?V!4wB+<{=&5HOT`vf)&}EgwjfBoOgJ8<5mC=Y+fV- zuwVKjd9vikyo~CRrD4g;-1tlqw&qSK{l{|$Y%CtPI`D+%P3yE0XUhzvTWZ<%v~J*4 z1cn?dkaK(E1SACxmrLGvP#oq$c^o#6nY*+DGa93jvR5oNj5lT~DZ2}PaQPgVQcvEg$+Wszzkbq93St0=bF8_9xibm(^~Z1C_=(w z6GL%QAvF7fct{L&U6p_V@!w!IL)Lk!wp#vJD}0x~HGd(?y?ZC2_)6neI7@tOx2fR} zms=oCf)Zvlib480-+rSG9^U(GkrkuLE(MhA6~?n+)!sFNO~?)3+HmzYYS!Wc0Shcu zw@}Hqj`J2`&A6 z5!@3h^B5y!AE8xRA5R&kV-n1J9pm$?xi=AM>Usj*a;9oF0_H1 z;g@bXWR|8fUa{SYTD zChj;>11(hb8OTT#x8UrWj+##vzGj9@Q5Jzzyg2ZCs$hH|2EvgOJU^-mShp%3E{77SmU*wkt_<*@BD}d()!F+TIgm5M*bRp2T(5aLg{x>V_h|``#*c}wK{o9Uf(FrN;5h4h0Ts!$7Y{|oME#ya) zrlYynAWiu--oLv98zqUKt1pnWdWQz=P?b&g0+4bzJ9|3ptvl`~eMcDi6S>I^DK43QQ9bRECZD zs_-MD8~HWvu?_^xH^syU{e~42Q}V<^aSBVnMO0q8$}O>ih>XxM)Ve*cdV5`@_-gDb zyB0UZ+KH$|C2(R*5UxCggfSH*a@6hFRqgD*TYyA|j%0RzS2N+{jsY_YgqaCV#MM|m z9oP$iErl0+ZB&no)P?0q>1m9C9G8*#u14olreSE?z${pZ^<|Y#^ zG93zMrwXci6yQnv9QsbtzRLfKIMx1+~NTFGet`I0~9E(EMhrcY(UB-5!Pg%_L>47=^vUbTw122iXs%(CMrjyD zaZr3yA;wLPMfCHccL79aK&wnJuZhQ8bnKPXXTX&o0vk|{d>Q$p{guRw$Kg4r?T(i| z!IZ_G)3FlBY+{58sC;w9POzW$q^7Yv)PH z(V_fJIEye{U@N;uyszr@X57x2P=MobrZaDAWK&6)L+DvqB;q9iWRF=mT;%vCRv?9# z7vc!r5>WvJ`OZf1A3N4e3~~KV@I{TIA2Y5vBM#|6XvA*&xY&()8{)Cg(XlP$1Ly?; zLCl^DDIc43{Y=A@BVaiY!9%?j&YwFmX}td?abFQsk+uRE`2r=@i7B%pJk0Df01mDc zcHsX3DKhJmCS(4%q=>R%2v`3RraMZ%jv9koDBL!@_eJygb^yWk8ql*1qPQq@@&*q>=YdYhPsLaaxuxoy$+i@tdb9TR!_uW9-y~UB`hx2@EG**hP>dhS4it z+^r7YyEMlGcQ$ior+$qOEV050U^A8Zb!Ije2iR2O?u&3jT+mqDC(sdQv-)Tg_Vpv? zbMa)=+h;f9;mYkzIOiK6oJr&p%wv{<&*X&bbL@CO_=N$(g<3lmTNv_!qB=jbqs+=V zmZYfCz`ER|dRQ+FubQ?Tv?pXvES`^P0l)-Gg}xS^n`o{#F!GZTD8?^zBx5g#Ghau7 zvt(NSTG}gpA&>=Xo8-1YzRzh6#eGG@OoMX7F1l_?$E+=(O~++!PzN#!BiC4q6066| z5_;!hfXk$?mODadg0QNIot0aCQ=7sqz6R5j{|LAz{MOLkX}CK2kqb%MVGGQ|c}N2L z_5u{&QMU|M5aE2Cd|G=4D-5Bub9_iRC>^~Hwi=N`cK?ywmLC<=kYry5EW1d8K_G0Y;?HMAQ@;Qw zOnK7J48G+3H;OMf&1N)AsgL7(XJbc&&q6p}fdgSeN#gsQ1T7tqu%QM=ZiA9T0O$DHI+CN%LN_nI(KE6W30JIzQi6Jib*#^j`3Y z^3n`H97NTS1rQA5-@LPO4fo6|BVvI*B+#K znhPz~EeoK6p;OWK+$4P2jAo4b5-FEj3$Cg-JM;jgv+@T5CCcwOQXoHBQS~-oMUbY8Za^83T_$ANQg8`AN@9-r~>k-%= z9<*rHVNUL3IG1H{?bp3>xt{iik9^Dp>-@OxFUWJH%G}z?JDm;?#%3bhLS5#D_c~v) zXm8AOs7cTPHtjTIif#5BhR`oK_0pF!#JrDlEuwVaS$UJK{$E!xv{C4%>^Y4 zm)r{Zq!~Em@$B^t#5J5mX5`;>C(-`}Ka1~v9sXR_S+;-Ifj|hQQgX!Ei07o~D;v`a zPXVeZFPedoE_5uXWMzE2se4i_vVFX-!|x0rHC*G6ljgjyu7ZMxiqj2|-u=mtL@K$% zy%e55nQMY4WJ_yfHE))Jh?S`x8v#(<7W?K&@b)1rhVkEXpNYV%93`;hg<*b<3HR4M zth)TIT7I@IjQ;+G5%2WryxFN;^xC@}on^^j@`m;*bfrs%Lvo<|waL{twHd2B+`Cq7 z`69d?6-+EP1`3H@6w<~o?;3NA<_8Xt&vGLVzn~P+4>lFgMsu`OT@HQz0^=h%(lgvs z@=MPlKb$Usq62Ac91Y!3p_4$GL+@?aPSe{8W`Dhhjr#$Mz3~TTl?fGFH@&~7cE<_A ztxi*TFz=qB4mY^kD%vdxWyEs0881@OevQP&@-1n=zvl3xEnjfxeSN+HOl_bECv!f| zi7Bd5?)vZv2Ttt;smxD{2(NX31Fm?=DEr}ofnALwvKZL^&1+VCjQp*&m?jhl<*7bJ zG-tOA`!!P{-1n<>9J;hnYZk?uM}E|=m$Qw>xrD6Z>_YxadQTvPc2&4N1RJQQW&B>L zr(K;J-Aw)t!@thdRcpu|g34A7G^lv+E<-1Ad5OK~4m0D?{&(w~OIG~Nbt{a;#(-5% z1ah^VN+7yiKZ-kf`bF?UxO#Y5lk;*>5S?~<>LHc;#0{wNN-1I^=Ou$LXJ1vmnv-?cnfVdKPdU{yQPWeV zRs3QMr;C<%Ys&qoK|6(g7}PvT8+*SFD)^GVn>F{dZgp@(egt|$?O+Ss+BGm>e(Cgy zd0clwdeE_83vQ<_U>EPJJ}MWA?wPIEo1@H*cbZn5g*#~J5Mpg+PKW_@la`&e}hC z6}oi{03e1Sa*b}rZ-sb@Q-uXdx79k-7(~&NbMVY|$%x$eNkquE#;4YEQ>QM(XFQTX zc<(HOTaB$?Y5eAVS7%$Mhi_d3*;66(O`bh+yWt_KW@9~bHz2=VaQ!b74vby>p%@lz z^c<5*TDkmzqlGXB`{77dcI~&+nOXM2QRyT%GkJPU)wzYlU(^@5gY`E%Sd0<4@Oq1N z0CUFY*BQqzXQvv_t8bB|6#zvj@-FnIs*J7yeS9}#^q++0jEk4xdKiB*yC2Ob+V(`C zwvyJkVq);9^3sBu$~)IvBHgXy19_bT0TI>X%L#VRwns9i#s{G3N9SRs%=e5i36UL& zx={vyEY@$Cbib`@hpXqVfm1R7e3k-;a&thO(lrm1n?)nF;3e&{xA)hgN6E|sR~Bk{ z7#0*#Blva{3xCu6fUPl#Vs;#qU^spt*c6ijSgH3{EcTcupUCCDnPCEsAhr z-97s6Sbs@mRW?_Tc-P6FrN;TlZhL5#$nrQ>q;3DJ9k|7Lax!>;jH@5TmPcm3_h8+v zV)LI4i1tnNpA1S=Jc#}1 zDx{H_tn0e&`9145c7dt^o|RwRL?Jz)48Q$4GGJypMjV2-)J*_bLRevLNf7Pk-DrLy zhS@k1klW9eFyVpGmDZ<+97;YD!%PM;5OA|O;J&CPg^ z5J2+z-kx#FFXdxej)Kf2t=^6*b3{@Lm3GTPCeTi*a z+)#FNizOYMqmJEjsJXA(1(#S0)Y7Vh(ohQ|p-86DC>ugPq+%Ut?*IQP)^CrFTHymU zpltoY<6&?KS)4_1NRN&@AXPyunTubt@B-U4QKP7=N@sK_c$X6cxV_+9rw0l5J zAAeRsb1FbK9SvzUumi){%2D<(2f#{$j{j9v5b%`cLPP}Q08MXMxO6&X+Mt}-B{A6g ziFtOZ!oP3sS1sI(CFNnmYCdxt&9kj?0UBX#o_24EJP5OJz9GnFy$u5{+8SBmRRvha zEk*jANX%1yrV{x3(zupKdWUk1_8qW=lB5d2R-4d*_MD28tC1+7W})3Y@dMB8axgmd zSdo@uGq9i$jW3cNIqv&)#fFc_OAK-#nNRos^NtN`(3z+O+eLF}7B@EuQGjZL>y2Op z@lNH5)g53`O*WBT`=B0x8W*Y~jsffVgtT_~F)$ktdkT0_1VlyeO@!YfGX<58MIp3+ zt=HPdfly=<5M+D3O8zLE4nf+|{F`wKSXjVjn9qTj_rLv@Bfl za{3ViaB=(-nJhgE#6j9JKUzfWHFy(uS@h^6dny1R95yfFm0U2B7cojcN8;PIz|r?> zGr-A31T-Q~a6v*3>s`6O|cZ|bkPsgdzX;h=4#=d1H-V%Zny z4fpZ>JLMyR-c-b}5L=xUe5tDR9x!S=0RUT|~j zlZ{@ud=WzkrUlPUi93-X8eF6>>S6u=Ee=;g%&=xQ_MGlIm|-?)T}%c}2_UvU>DSkG z!^Pcnl+c7=-D@5A?mRx&>djCE=W;@q-@&-%7~m z1`4r9wuDgun-6*HqEcqI#LxYvywlrAVY-8VI8K(jK@n@i+zI3iU{BzonF-0`ItuLx zVA9;obi(&MxR#qCsgJ)&1iX(-=7e1pwlmT|y1Q17lR@Cyr8KA}aEyZjLB{nE>(Pn?)ZFB8f$7sf77!7i7SvfI?VODB`}b{x ziG(f!ivILxe^6?ZY`7e^x{@YnubDO$aQ|1_D8>PSL@*jh& z0t^egilEajhS-h?s~n}<5O=hX8Io&92Ra~?np&y+!P5`+u^@QC%+sTK*eAq0A=Ycp zSpKQEYtdItImEXvxi;JTt~8eX5*W%%9b;Aw4?In;GQXPTnTH#}=U9Vt$o7 zJ?CFoPX2Pm^fhNxr|94ghAfH}8SyS1Bw`gytksb;f8SJy@sv|B*~PW-!gySCT;JOH zNLYNEXtp}dmZ?dQ!8XD1n|;gbpz)ze;#F7H)zQO`!qZSlb0Mj^pK3rIh(f52Gva_qxzkCOyG#f_-h2&c+aF zaDU5kPzl^nepCnHbPKg*!uis1w{-ix9xjvf;`mID4xFnB@KHBLf3)JnZd_)@C$x9njilEsJL8R=822d6{R^N(Er+E6C8K z!O)`6qnU_{+q-yKCP$=OiaolX#xhc~|Hfc0V*38&XA;1}0`l0@*;V$#F(s7DLRLLS zhYW79(!_^<{hr!(TL2+K%J5njR)JRhT4~WObzfQNZGvc(xwuGvG?1G5nTqIr+6_R! zOXU?l$MBKfq`~!(ZHDG^A0=en&rE!*XENW5M*jdvP7ZDh$-icNqB4OYlUnN+1+G|C z6pz#Fd?H^QkU2hZvXcVnXokgF?I`Qy5ZhYH)FuZfWeIo-ZdAD|mx}BTE(C|!%OW{X zJ=W8NQ)B%O_+56ajwoqdTb|+ZaOnt0nVZ07D8cpEp6*if-_-3MUFpM13E!dA=Z6iU z9h;-(CaZJPP8r~|lh@3ENp>@SZ8PWWP1%jK>1P7MZtG!XTeKKlomdxc^6N9)-MHg76>{pCX913Y&OUETkMeRsMx!~UmGJ#9nWY)dcmXEK#ftzJ z-UotCtu3yophWrF2agtBz6oz_dM)oBwvIS5S+r=wIHXo~d5;`aSQ`oWMX*2*SQ|;e z7)~F!kt@>Ued8>jv43g#aiy7Cwr3Qx@r8wjYhU4FV0#llI0Hea*TEaeYutrv$7DNz zLgKdxTcGq#Ky*xpY!9kf$%81*Y)@?BDdOv5s>mO8YfI_>l@&FLc1!Cs zOo>)-{Nd>kqwjSp8_2D*+px0a!3a z5bE0zx5kHn_~G~-W+0Sa%8d}ACpVuGh#3Hc`VNT~y-<5ElMiIKD32w1v@FrEcHmlz_sV|;-sIG`N{AdHy3%3|Q4n+kdNq%(7|JQp&Hb{UH2hP=%bgRWGKL&%;6CDS4w19ZDB{u0A3wGdz7G_t+yP)vk?;@7CV{*fOS1wdkpgAu$nZTFu>{J zM4I=fR0l))se6Q%&Gwy#={8kf)3ExiFU#wyQ6qZ}vd_W3fVs@K=C3i2LY-B$73x9F#0&N_HaJD2c;NWe z1xX*%Fz4N%!6M#-X~?`@?ji=yO$82g-vnTx3gZzMr)M@mR+W~l z4)k7YDD}xNU1@K!0Wbj%>6;$ZJ+EqV`$x=l7N^3o2w4hpK0>@xy;k5incuknk^fXU zQ@0eEh>O_+Q9G43qXS&*g0@@0WJil!Ml!Q~Q)Tp{C^P%&X?aNCOm%tvp1L*O15~YQ zJtf@+J*?&SkRZLNMS0jla1!MKT=;u<`5S4?wfonu%dubeB^knL2A`U$Nw4kwmP>Tn z3P8;mG^>n7@j@7J8p=<*G&D@a>6rR~9Lrh&oq2zDKIUiI08-?4rfJf{MX8UQUu(`c z$E>E`@wOO9k@Uj`xWhTzw6!x~GS6pWyB0Fe7bl>mCs{t+1mdypYBR1ZAke`1 zQUoOMT>I$ZK=_J>Yh`~qNj%u`8h=tufcG}k6>4UumKSW6$5@DS>KWCKt`tM1+vt7JjOeUWU;DMEUw6iyeJ0yaX304%}<2#D?7qtukeC zqT&g@5P#gQ#%&zF3Nw*4chH!3Cb7TnI;Q=rzI%oXUYP(l z!lYR_$(BK1BajNbdptSZOfv-x>T8x{f|N5_S>-`W@_%V{PZ^o_1SLFP(uCOAy}8XX^G)kr%z2 zEg;s3%nR|u3~-5gU{f#q-V4RWplHAo-BymYmyc$h(G`E%$)n>id-KaGU>ABkd9&#Av=N_+m@8WORPhF$ducK>eAV*qWfgbq0L?h?{3sRRE+Bs}U0IB&;&{vj3+AIm2$HS_>*B^hKb;p0n%p{+)$}FF^ z>i?L!5_l-r_C3gQvel8S(IOlwO13OhX;Yyr?Wj%?vS*!PNKr}3WXU!ak|m?WkZq($ zVw5f0%*ZnKVJ2oKW9ENP=X~G)JHKB?-g$fHeYX3#pZmV<>pF0YuP#=yHo74Qf|*vg zq_&oKuF)610eDjbILsG1#S{@Q#z`p2R1M^2@6m{5I>w+=qIHQ|IIop|lxk`n3vcI05D9?Rxwf4 z8-l55P$GFy{IitIsUoq{4Gn(*D;L!24D64@TdA6D*c^HKTkXkgHqJAaPk0FslvWqs zwa8j)sfE5)7br<7*cxGu@`v;r)Mr6I&;+-v+96cdM?1_|cv1R4k=)4t-O7*!kODhk z;+Fu1UFbA(L~O01IY75z!mfuJ4z1r5Z&(;2rOnzVsRQO~cc?a%KD~iYPDq$(LG?8f zzz5m7%qoX@N{i!EA4UKo{oFHUYNr(6Zs=(o2@Lmm87Z-H`ahdZ(v6h=@zbQ=0sQw! zv0}|W_#;+qR8c-yA^peESB|25(%OAcg0ULl2W1?N)LM;9jZ;!aY`w*vOFqke&Bk^= z=ac1X(K#Xl>c`|*WeYSgCQB_+v#VxkomDnJs_gzVxvlram`nWEMH1_S{d4_VnHrgG za+hG#k5@|1D8UKDTS9T`&6TzeDv<7UHSl*rdfGwM58|jH(OEOS(?t86RQ%e;h>AO# zECq|1wXhbbgKdEEHtHZ%Sl|Bm;~^arQSJ9BRKl z;ppRITg!Xbtd+XHWRmlzOBCV!l-AN~7~ z6ypgbEftgpwq9OC+y)txpGK~ByZIIW-@mT^v-1ePdez{jQ{paAQ``%&{cVBfyU#$V z;FQ_nTg&cu9zwl-ecFJkK7^Lz2A%C)XP_M7)SHmg=et`4nP5PaEXGE?p6O=xRjWT$ z6D~y@cgL#-|34&gviN_J63SQLRO)r$$h_ysh!gZIJTy_?L>uC0u>G7fWC!@fSGBDz z5=*2WC4$50mPr1R9RaL`$Q@%9hoqJv2a_APS3GU=d!B$nMu9n9#qCoh7(;IJ|NXG# zr2ju~e0!<`-mD>lx(E0W4Ocx~E$t&$BniR7e(yBMe*{4ELF9wZ`!XVcAc-Tn_86$G zC_QF@pq^V|=n?}WeMKgO<6uv%efKp3j+CS;bOERxcqR+D9Bsf&et1~_-)?Q+Xm|ae zjn)3+)7u&z9jX9J+zxn))jJ@;a+0`YpGd4b^KWhtX;Z#Apni+FE}r|@MI&@?p#sF`Cd05hAu5%`u}3Dr1o9^ zFu&oI{CHnLt?zKGW08<6dfl-0eyVq0nHTwH+0gNRIT>Di|`(NDM zJFEyX1$_Y_Lq8BQY`+)-W(A^8hV|ro7`LTp5!alfucjzh^Z=)f)d~+OZ(GwCp~(pN z9|X;f@&CZH3L=g^h|`feb0kUZqyd*AC4Fi@8GN)v37P)R+?0t!^S*Z^gdVJYMjSud z5ZDDtRW8S5r#2CYYfyq!3%jpzMFN+1%B2ZHrX^}Fw|OKt*SRaWY@r>a6?-j+?!u7u zQVEj%Z@8jBS{2bD>~?nj!IO`T**t;}e!NG^WL8egmAe;+7cgd+)9--cWIfgJLjzB% zutlH(;5=uuSgA=tpckOXem#&z9$csvTsq|{i=LG08r^4U%ku-Sw;T9^W<$;*F_p$_ z`LW)xN|X!b?)76X4vAh2UlIIBPm#$fAgBS-hIc5NT^BZ4D}Tzq@t8CqIBLNDTa-W| zz|m32@B3?l^{a=&{I#1`!BIc|E)_P*%p4g$P5>tVu<-SLt@dIrRE=2HS#99Dw$6?M zzL=dl{*dink$7zO1c0o=*^Yp{nHfn1t9|^cta@W$Cd|BCUR{S?D@n8t8*1l0v7Rn^ zBidEx-jB99LuejSgrAm>1*l!=D=c<4^`XT zU|z`$1w+oCRCNK%f#=C}zHc?VN7B(d=aFmZ3* zvp0F!=eNcDy*<2Crchdh-gNz1c>Ce?$Wgoa;7IJG>Yp(eCaxbM7{g zJ+pOc!1NXyS_XuU)4XJ#g@~9FNx7XfcCZF|BdktERG3O6d&acr16w)jEHCk$b zwDW+yelO(G?p{JTfE)H}OdG{e^Z&tz0DHHb1=;|`HtLxDuzWwMzqc8qHXx@oARRO7^SPdz?Yp4ro1l@q88JJ;?)HHMCiIkc)?<3NtHCZ1?V*lKEJu3^&r{@p{@EqNexnBYjHM@d~@biArXfva0y?d8QwMANIu?j%TKvqRlckl<*g?(3%fxKyl zXTVNaD8jPjG2Akqm?(rix9(#J>a^V(O@$~-rd~KMAQdxLFNBm4tSe_$N%j?+b`ib= z`#jM>@C7Gf83LPNS)oc%o`nQjbs=^<@UD=u-KLxNBOmVew#gMlP>v*Z5%NR2ibNqu z>HP!IA4I)GwIYfKEKB%Fe+QQk^f70(*UsU_08#hIB$U6`l3#l~Q*}>k+i9~$H+*N@ zWa)ou1$iTMiQR|vfY0vIWh(cm)(*XbhzKCfo5BBD${XAt7eDBdMj}aw58RNtbIukm>E@}4k0@g3 z_b?KPS8O7E%eC`=0%4YPUp;aG9(y<%M`~_4JXk%YWjE^6EYcGnP1mxW!PSam7*S_7 zF^!{**B$&C6mWO0RMS<0d!G6?{iKZ=tn*VnqZNh)X2mUbqLB|JtcF_C(OUC1z>abj z`>yTWwt&swwS*>7BI@jAr>;kGe7ibdpp_nQu=o){8^70}@?lEh7;y{Oe%ZC+JtZMO z-X!(21}ip-ooRzKYJ8RR#+$bkUdG&thp1ekf7O98t$Vu>Z zmf7+^)+azL3yy*Nffj}JqHy+dP6$b^dCLnZeB6M>!xkYeBaWE3UXz9=HKYjxRkzsA zD@>m_-{cQ|6uu011?Ydi*S>-txLe#p`qCTM$a<=oTBgb02ev=hcUs0Pz}$=B25qH? za1+7GKSP}d@)96W!X?)(1B(XE&4w5K`&tgsP6!v6=$UlLhSvxtmGb+sfpBLC>=m^{ zzT>)&^eRHPo^7*bj_j!fQvEu%8uj*I#tGdIf7sgz0T)Uy5XR@PZrY7M5Bz44JLmPH z6owkpRW)yJa|Jdzb1!=^j`)^z?oYL@QLi_et`}{lf<1S+UPo`5uSe*OlUKbeN=Jik zM9(Nt$h-ra>ee%QEc^r(#=Ho$Ia*+-x<*?e{bBOSxVhGJvaGP>w3|)jJ;MTn5|h`` zW2dNhyTCRE0>KDi%Ap_>QgaoDZv8=E?h-KCmdD=t+i3$7#b@DV1#v;)1sD3dofDpq zQGt71zr9*!Tb5?jzMC3pt#YbG>n^heK!fgkGo+CZ9iPws80Fj^EF89=Mel?hA$Y+< z4qELE>{V0>0IcEcBLtrITn^Z0gb#Uxw+y&=HZKvvCZzm{Y^R-*lm8 z)NAgN&HfrY?ziHWUXb>IUJC9RRRGo(q#WBF*v6`WymVn>pHf8WXYq$LA^u|tKI^^I zyf-oOYzoC;-Nz)|D^q`XGE8A$$vH*oVs)??;S>(~!$JVRp;?4~OQL+~{kr)!;w50A zD%QSN)RUVHPlsJ8&*EL7H8mqD2UG=sob5EwZ0)m&+%`Y-p&`*F4dH_8T^xcf43t&i z3;KviP0d|Pg_`x7@YCu*8x+sCRh3>@0OpJ~Qe27jlO?hO#+!m7uzw za7mC+@%hQ@%*rFSE2vV2i+)f*z_ey4IR+dkHsy% zQ{7H$B{#N%L&1ZkH2Av@M5)zL#y`Q-0Jmb@b8WJhpgjR=*)p3AI(6}4>zV!xJJ5^* zp&3bm73^;;3UlfiUB34`G!e!W9!ekXuKBYP)CXLJ!QbGU6P^98s+VR*>3Xxl}w6N*&onLNLC1Nvz z)J{_Wq=p3C8Ds$)=S;03U$PV(7mXApXAPjDWQCn6gszB%%XQo0q9{*8;%{dDyhLR} z>+4ajAbWJvgtWx`bt73Fq>_%Y>U>V70#zWi2$g1%&#DE&zUP{hqqm+d51*vU12s^y z1^#^3D1MFAmS4j_X^E?(35Wm>UZy%AFNnH0t@~I##GK086w>e{{OkD$-cb-was}}u z1K{uj9|IT8So)L>ESY0O*^YV;J#v5S#%WYqhqdjY(M0$uyxV*s7b&ivm}ef$gDRrz zH^EKu!1p?7@l>U2)Ey+2_#m-_OE=`~B#XQQ=C5sDZ*UPm9e^zB*}iXQcOA&wZE-wv zuf_gb&(It6toJPDM-bJZLazleEPr{7Y6FRLE4$~({RJwd^M|2&BTn&#p_Np5I>|d_ zkBQ06W~;nNlk1SuzI?{cu!9B?S7O)Y_9?|}JvM77b^ofKx>oGsaeG<%lh1Ugh{1Wm zIqpW{80Rw5IuqHWCo9B14B{DM7EcdtU(Z=k0;aLKk#3~Cz(_|vVBPWo#<*lRjwW?$ zM9r^!1O=7`EzC|J0tMa~MmW?%9nTY@x`GcZs^yzl3~b2i&{xe-slYd(C&WjcO~C^l zT}*n-g_JRsNlKK#oxwRiNOgdQ(PENTP3BrS%z#Fg+r_ErC=#7%lP1QKna^`O+b(}_ zxFxmciW8RfIh}jcl5(p63>oN|&@G;$cNsqRb-`?(zh~*XqA^d1)+^Htdaj8B;?vJ? zSYz zWGL#ei^hsPmAt;@65s2bj2sXHjGAwj1A*yHHyp zYLyB{NLxWn87z=lA9HJYS*k3c29*Tpe#FZPsM+`jh&@TJzoXYGNj$xVR+PZvOw}v0 zr(kxSO37<}>6GOKx>711O!v^1(Q-gW$bj=kLiz=uOE&wkyl&;EGSv&TPTm<702L(y z-2(Ah-bMXd(IfoSBcVFEIFYp!c&`PIMnd);x5z9&vpxQoqwr&zPkTs^t2wU^L-*hQ4W-YL0tVd&2c4oDtbgPtc?il(_*#sBoDZ*0 z;Fw2i=_A#B&4f4ZdLqaAno}Xs*aUKb5S2)-MQfv&CII1Wn?>`kf8cG0jdk(M>9w?Q zT*_%7N)l;#>z%-Wx`lOkeln3T?se*qAA=uzaX%L8RoOP_g*&s_Wv#J&I-_BLvRLyfeauw`5I zeh-u1(nu;UX&H{)qpboO=(yrFt6dQ2>w3?w7!Mi@ z_6dddplK?9l>hZS#@y@WAKyIaX;TP# ziITPpzhLc5qBIK8`+f4qCO@q1m7$*;6Xl!h*&=tEf&F*6|2osUd zZ;CZdz1N5zwL4D}BiL*&Zh5Y4bT?+HCs!;_lOUd}*$k3FySxJ8OkRUG_OxqsE~;xZ z>^Il?AVD(^HFf8V#{%NJ)~RbyJd=93OX&WejfzRRY8KriZ2k0z%Xw5CKni(rY6Vfr zEQ{%(Ra=H`v4o>f5a^`5So>Yhq-yul90jE_u%vH8Q|@l2sr%RhSq86RW>5 zuSe-K+1yq&C#%X@9cic9sXqMk)Gk3CMtiXw%~Wc?wwoqt45&1{0v>t>v;yyW=SEfc zwC(pUH~#*+R7~1d@^5vdeFZJ1@bcHuu(qbQ38V&2{MLQbo=*}AYw&-)tu-ImGX=th z{%LvP)AnI4^v?$0Qg#u4J zsE^%2Tryx&M3?sX0nN8(7U0a&B_v%|?HFr5_+#%cN0+Noi4jLvW=6b-0Za74L_Hdd zA0B0=<>GbJ(-#gEVvAo8lEmAPVSbZnCr1}b{NWi76UW|e)Ksw%e02j{Jg&kP^q{u2 z27CzAKj(@iDLzbB)oo?`s|=Md*St~enI=-uZ_r4IN^^v<$GXth|1|ckP(jODYG>;k z)pE`A&R8pWqI_sade_-;Ykl`--6&T?_8tUbOfnj$`cPqXj|C3sK|7+jn3}M?E)S=F zLc|0kLQ;$xV2HxeLpGG~w%=WdFFRi>RJk1|ULzWMFXUKJ?QSndpNQXiOD!*k2YLIe zr9Y_@5p`pDtQ*lz_7hWLvPGxhvu<3n_SC@$Ak~9y%%D~)U4yZhJjR&_a(p-V74Y3C*$9@fKyBhnr=>efM_ayc8 z%&aaaJx~EK0t2{Z*|j3!nq}^;n;#ssxNTznQ+TH$)ja0)cY&DNjTE?)&yt7t%(l&p zS=dESIfX*7!#0Qb^=BW-ELt*!HxK@UZAvv1VWh1%e5k7R#7lzMlz=ejo_N6hLrvIf$sOa(9Bx>- zXDJDpM}|_g>$}54yPNT&%}!H7frsIA)g2q{e{m0rCDI3&XxJhZwc1_Z{Kom#8XVmg zt}kJ=o3xg8@i+>``BPN)Xc<_NfGE!ZMYiIP2)Xj!Dxsnl_p{iZQTWUNK1)*EVWe%y zk-FGZeXv&hMwWC;@WvbKWZTbSV?LIqh`rW~$n1LBJ^HX3LY<$}+(kuzJw5HkZ%sRDW@nWV_tv|6qZ zphf}@R9?<(Fxe+a#_X9En++q-3V~x0mdMojJ)vSDN+Z@#pc++R2|2-V&J~B*@jop7 z5x8jxw?yx~^%vpJ-lkQHD67L-6}t$YTf0Hsh>j9Y%FS4O4ngqBeNu?Zqmae_On-G1 z-!Cd-R+qn}yxa8hnt@foX{Yu6X6oH!fY3Govg4Yc1}-keQaw3*{Eoz;FHGw~7oIj0 zem_y%O?ZU2kOeT2H+^iRugD$Je+p%(uAk^OKrGdChlQIN7MKQK&K~EO@lVbhy%;HI z{D(SkdJ0J(PPAQ+Q1cFJILqGrJ^km>k)B)uGp1wwhPA`-I>oQ|tulzcYrIc3(Cky| zj9f#j%-R=w4j-T2@Z56K0AJGjTNVH)_~+sMlFyj3m4mMN8KN8^sX-jlEVnbxMg>P% zZ&oz1Dpmy~-UR?ttP(qnhNSty#qaXG%Ohidd3 z?c-L8PK>Yfzqu6l~8W7pJ z+pYKXg*Z_bAWo{ zn^NkthE1FGO{`amxCfqJwL`9>JIX z@i2WG%ZvXjP1XHC*>dB1#S^k3-#5Q^=+^P>E-dQa8#VP|c4~C??B>VihgGlW++n3Q z4Sr0@jomV}&mf~qSIkwsWbJT+4wQrQ|6vP^NPpIFdvJYV5ilG5=3S7jh6Mc5LgP&9 z`41hH0x%$=^igWxW(bG~>f@9*LAQJSoEKErNOH>l_y?Pk-_kqtMsr2|5vyKh2NP$fbIy=-vf zjQoGRH2iC*Hc7&7=A^i3d)D_@X2k8U=m!DWP`SLesKT4ZO!Yk2oOI?@xw4x6luwFA zULozeTr?1uZmax|(8xC<`e;Sk*;hM?_DmHJd^ObJOveN-?g`;?c-_4^g(B zNWl3U;VEx4tHD^cG@sq@bl`bs;088HK&&8H2S^fHR6)%b#hsN$p-?N#kQhAuVY*2LFqeBu-J!JP)w3Cr z9As2Ez@yqX!vroaYm$?|jQ#SBGf{94Liij@h2+aS@PdNMG*82ho?3JMoOei+=bLxi zd*QFHSj>?cEu^+#ST}e9OK=10&iypQKA&Zv_!fVui4P@AxGRm5}b~w4t=v#2_Xf;s6??M>UjNfRgFJ^lL+3+B287D>^ z=Nirbf{fO}?`uNy(nN7_xF|E90Cdz{s2AOaoH$~y2wf#AgIQACB8wtTM0Q6rJ_JAB z*DCU(t$Bz4x5M&X7c^x&Pw5)Dwt5#VyjEUyLe#XE>8tu@Lt>KRo)gZbeUaYU2a?($ zJVr(>TX{TnSImAMI^1dw9~P&aVn3NR&P)6c!W-TJ^y zqepA*Mz0W(@mps{?2iQjoEeDT+T}!0g}~*e?#^763#Z&la0pL52Zj`9_bj6nFbAHK`f!t@H-7bYJnGQT8LX$tv^x=z8BDhO#8 ziTDMoZFwVGKW5Q6m3~32PL!Pt_ndyCi5dERk1$$yz7=jtiSpfX@5ctR!Mk4I`<}!6 zlk6ofE8Umd))W8yySe|s6`SlA32@r_M^lTH>{f-`_>Ukg^f9E|_Jw8+f@V$|xZ$6^}MwHVabwdnD7F z+Y4#NGQu51&&-(DE-7P8h{0S)S&%6;-sEGiUbQ5^2|^?w`cJPni-uJmHlEd1+6^5NP`$0STPQ3Oa=LO>b2pb=NA_LH>~!^Bi82uy9rboVc`@Fe z##(CF9)fe3_2)O{zJh1HF+jiriu=8wk05+<_4o5vh2B7T2EgHUr4Xf{r5v=m^6V>i zrR^;v{91=B^-V9Rm{n|Ds#U`577nwBW2Vy8@Gu6nDmAi(^8-H+(^k-2Ul~MYHqIB6 zZX=d&c1_U=tyDo&NKl*U4QJU-|1|t?VQ);E5Mr9M;#1eeto^efOW?AYM?Oy^?f%7< z+PRH^UgBO7Y(0Cn#M)lBZ2r2}%s;zvS3dF!{VT|h`T7lXwWnWDib_XoxB{(w&nTGa zM(B|~c0h8c>tp7n9}#=u+^YIGo%<3TO{2OCTiTI(X47Xt!9gIiu^ssLCAlqskz)xW z^$-HO0jk{1`JpOgA?|~a+mLCF7YKcMvkj>Ph-Sz{y9)CL;AU4yxIWj!D6#QyZ=?u& zJAHLt4&-6YA@Gq=Wz9-%ua&&0dIC?bIVAPrr5FNzOM;7uN^|*D$K}Rw%9(5J;`42LcycH}($eFPK)MGD00IBUv9f zm-EMlKA2|4k>x#sS|4H_{5vMS5tQovlOcDHfAQd8LA(VTLJ=VcLv(}^&4;~W*qMmW zhA5IaTNd<6dG(-O20}c85IoZpoU{I_hE%UCg0$(yD^};9^H-^_$nqfeWrs+Ore*K9 zaUrF1<>8SLRGWl!)mi4Eo(S^bDy6M=o;GGg#S@u!&ooa*5!P5qXxxeM^7ZK&J%htz z}Y67;PvVx^0#J){@; z7p@tjtWTj$led5fm|W~Dr{(1076oC+h`PCm&8&+yg_Fp&^st&WXUy}`x&BfWg-bo~ z`C8h^rB0!pXlk?m_rm@G$PX{9^JL7Pg&kJ@DE(R&Xal>lF1f&9Haq2^+GDP}L!R92 zd9_|f)vO_P^}IH0=fi^_Jar_J{<>x`fahYM{bqp1_pr9-&(KD=wo4B@uYK8* zC@cN$ePY+2&f4$vyAp_0iDn=x=#i2IAoC{kM=nz=FXB}wJAe=|In^t#S_e&7~3G%Pk{=UWRt@X+@u7u|De)9>r40Ed%lvP z7sLAlr~Ft%5ns?_?xYEWvMGn?1koueD)LWVf((o8 z84~RZP>JbuLIcVQP%EHsq_9Ry?B_d8egtTO!C@M7nATmsJ!v;%Wiuzl2URdU>@ASS zgmWQw*%4b0(j=!LM|;r51)}&}mffRzp#Qb!w=|O^QSVQOiRF`6U(vd4_<{7twiAc0 z6`gxszGt%f+>m$5neCS!rFGOlq+|@UJxk;`)wD_u%CRnFt2HZCWU~fadtQiITeY%v z=faWru67V5X16PvSuaB~fv;z$>Fia^Jn37RP&8kEH$B||0Ba#-{c$gXFlSZsEj z&nH#~qU`E|r+z70#}tS0tj?w&#cNU&$=%1qiRvP*Ai^Qg|AJ%_glJOm7AR*dM!2Q| zlrMjG0qpuJ5rr)*$m=E>7QkH@(Rk=Lwei3qJrJJ|0iC3iSfmj56?79$$kheZOd)Fl zxhx5^bS<)%x`xf~tM1%*mSCti!7uK2N-i(*l%-`35HiG6AJSv3Od^tf{PwQVdfc@4 zqgdl#UGqi59dD)nJftYJ+dDp1c>6^~#HIj)Jt9bp98 zZ#YgS@OQW9o#*;S-8SVIC!t*nm%lGBd11Nn;~KtcSY-0(vcu4I3W2|^MbA(xtTB^& zH3^q7idjMMXE52LuKK^PnYWORF{+V7i1!q%WpJ2GOHh!6h33wZXcf)oV=6v!ec#mBQ*Q3q;HkDuf4(B;%VwsBcLHbru z?3g^`LIi@HcD2BeG}0Avo;GWc($sSSCAlbzd^p;Rfp%byF;=iGqbhigFELY<6z7^g z+AC-utK5{M7;8xX4;H|<&6=#Qg*lt#x+28uL#B-`Yhqhmjeqx3Y7%!|obAr{OTrmE zInGNrZBZE?)w5&Z(1I`U4P@Zcur-%#c^8xT6C&I)%-gn>`YX1Ky2*+N$;FaQ@bxWd zOTKIp_ezp$W)ajN2_Yqq>3mcAC!j*)@ordVnPsff71x#j{q4Q&L8tvps(@ zc3Fu;sVV*>ubwMOUaF(-)6r&|lzYvGo_?n@m8HlgT6W{`c|~ux`f-NE zX|A2>R*tuI1q)@Tmfhh%#%T=>S(m4EHOG`w zW!iGSy@m44QgY><26E*d|L%weKOzH5*`)=85oUxV@iUf2@W&YjWLQ#J){%j}epg|j zJrI6ouEpaytr!@u`Xlm=D=V|Nr=87Ssc+@zT1VO?siz;;RB$O~uMT7+l4wj?fgX<^ zZKOqaZph>o73_G1?6Un1FJz|0|A4l{^tfp88+6mLWlMWF%SqhA3IxoiCeyz07XHxq z=!%gRW?UYoSpWE_Y`LCqcv?@*s7)Y)|Aa)d8_49wmH656$~Efi+gi2+CgJt9_+2n7 zh8?wYNiE4CT&)KK)1&Iw0vR2dw+O+Hela4xHHB(ToGqO9Fm^)JJz0&i@NBjWmy4>i z8a$^`wJfnH+Rc zTMI7YHgvORAcK^SMQh)4pKF)=eh4IK^{g2obtB?bO2$+Z8yS8zEY7sbG98QQHOoGL z@l8_CIIhW$aZd@!#3H|sk5X111TqBXr`o)%rZF?~#U5S$-lTfk2DPcp@^5&rTdpw7 zet&Y|7^4--{icDTo3*!qJ*$UFgq(XawqbnKGXo13=%~~<<+c{e+>_gQpHl~iSoZr~ zS%!yV`kPi9zkBJ*&nPE~7YHx31!qKFP#?ndtDP1yC5nd@bwBX^#iN?b^DyM5PRA4T zXU!tLc4uq!WuMx)&5uRav$elOw6nj&$EEZ?8m-2nPsdWJ?z2XT{ip^vk{Y_1wm>jV z#l5)6Ck=3_ajm#~We!@m#rQCdHKd{C5WT)Kp2o=QQf}|<=PaWJINa)bsyR>J%Hc2~ zYJgfpUhjtNHlGbk!X0Js^Nj9tbY~faB-Q1?4++kWX(axn20tJPV?wVmV!=2NtRt`N zdh+FWhj0&i+eT6Zosm3Re~gi#iM>lN3{5rVNMgCV-nMnEnn(HcYqn~?M}Q;QpULGx zpJVn2?1T!;n`jsV*c@SD;4(r6=4qt2y)6`zC&!m81Ovfswl5z?(l^jXao%`r{iR(` zX2Py=9_~g|p4U4^!T#DDT;{w;Cn%H}n;vDTBymd|8@f9+FoAGi=&7n7rX2cK&SA=r zk}{3@oh|euw~zeF99$}9JP3TFP<%bF?hYpe%N_AG)xv1BBxYc1@=ZA#7u|l;V@GkJ z@zrWtoHpx7lvxPUE0B@ro(%8pYRBjV^F*;_NWxRKz?4PI8){WenR03iZhkA%;Gasu zFt%GxXKQd?cPX?-*z!iN>BX9nUu6p_SUc`{e6s!=ce_DLuRS?x6DP> z{q`|r&I-3&BhjFE@_KHMe=+bo5I&lBO9bH~jKcdYbtAU4P>zW5F`LW(p2A+sY_iFo zVRCYoT=-tzWPV^lLR}B}#~eQ}$rX35bHIk-06XdVY^Rb?Tb_Y+q+4My)h03|$+g!q zV~$|Tu_5WuO|;Zs)KS>m%IkjFZRPYbf~)a-J?lvC>g%=v$$@X`ZPoHTwfKvKOl-YY z3*Lhs(q>)aX=`~6kA?2Lslh))_F*kjGDc758>O3pjZ}eeyJ*Y1-_^A0uytf)62@TB zxhaFo(?Dikidh$!l=ve%pE`HVx2djbe)Ez-e|(Sqa+Fz1Dcgi};sa*@TnHR%8zY-G zdMc@&of60(*lA*sw6ml4Xjdr7C8U-%4Gd@d_^54?I_|h8rm5@`DjTa(P%@k$8Tf|O z99D=3G;5)!!AJdNpX5m`B!}T_ORZikx15lMHM5SSUD?HP$UbOE%;eq;o^y$WN$d=L zWEZ}E`16Ig^{@Reh13sb2o+bPlp4{e; z5VkbH`E^j|B_mAd6T`f`y{5OFmES(*XWTYbWA06xY;)}3`zP6f0qB%UP&M>jh49H> zF7{+zW*gdO~(X99otJ!-|p%9OOG@Hi8H)6ml0hW~J_rV0RBW1fMMqaYu~5v^0Vh zf9U>5Hyc}R%^SRC>ytl)pj@@(sl!uc!`D~ofMNeOK8o|*0xsCWWiGGfJUq+OHekEU zc?(hWM+HmC$7$G$wwG;hn%)JS&cj!`FNNzmDf0X-nIGN0gj9AWBCQ_bOQ4_Mhv*^lK?P2>L-P(^2u~ zZh1{p+uO&M9I6YhyIoT(ec~xx`bbB|)jLQ0LrPAiD%EP@HXc=Q@ggN+Z0y=hu5irZ z*~OJ@!P2qSjH|v$o7fmVAiO+k7(SI_jP6&iZJst0ljJon2R>@8K3(@|%|#`3g265R za@7Sn^-43^LSC??i?!%4+Nb_0U zXJhHbGX1ptEGe(2D`lO`;31dV|%Qiy0> zXfmZQzq{}H--C#YgAx}FoG#R5Uy7@$`@2{;Fsi6G{t~HwdeLPEJ+!;=riFeb#icWG zV48c|8BcAWXyA7*Sq_=wnZ^g55VWA=p_t$Y0)50H^qUIer@n_QpS78}C}o3C%f0z` z#5N<*@1NHgiBLVAbJGbwJE;2#zb}Tx&huM?hkOdDiyNJ`6-~&`W#>5}O6wC*X{)6p zQ%1d%_Q#yBQsuEMWyp!VCq?uNeT}+$4#RvcARk}JwDcJb{AO97WtQ5Q6`)tH*-0A4 zy=Ag`lhCyr)M)`*aNUk0QT}XosE1RD<1dFeE-UpIFTZwmsfnylh%tI#@AZ-_E*Jnm zw{@L@m!IFXi1>V2Bxhmyrk`ri^<({XjxioU5$p!o+Zsz6;OJ2Ur;>=RHGGn5T*1T7 zOB3cijZ_uHeHG4^7ePqs`n2+(Bx6J7HNtrh+T`JaQhrGJ$d4+tL3walQtL4P!#gR2 zU+v;N-y;?l;{YvBVV3!=b%|*kOT_pV2B)p&lKM?N8r`)8?_cuxrn2CtWo}sPQ10@a zPW(ZrLHNF0aFZck@Sf@asC!$v%9w`JwYsEp)8`%->O~cy+tldFHCUa<+1sVHLd5oo zMUMVG=iwdIsjHWK^WbcivS~N_Z1vo}*bOnYzA-GX!B6gltZH2O!rKH|!Npb}pBX-t zUbkZVwzXg}jf|j{X}FTsaOpJ0D~)LwCD!J7S;U|!vy0`>T(E|}FZQYjDG8me=kqxD zF)YE%VN?losgmgtAtnMZ9;N#XBE|4i_GX5kS+#!z$Ygl~^Z#m}tLVEfy63lkF=sX4+xR^;udwSMtmVmqiS zj{5T_b+&z1L7@9f20RI8z3F{XELuTpyK3}CKv!>T<$-XskbkzaAQ#%3;XP0 zk@0F1YkAk%yn9{7_QPf6M&Slg$-x{KmD(@_0nvkN2+{i`EVhFm=2^>lOJ-c@u~eTWe1&B4Y~V@P zX;ov3A<`Ni64S~$mD*#5ZWo4TP|foGZAQ=Tsx;}3XCvIJ;vJ#*(77I`(-EH5?-Xp% zz3So?`Tf;6ofEhRP3BH7cZ7<~hvzHZjHxbo->YR^_h|I|ENyn_7u<2PcK&U{P-id@ z;g31TsJmT5%zIRGH(KSq0HLAxPAbMn&Du(f#(Z>YzLCc4?4=Pd6_mxj@mbr3eX{Dc zW-kn8u&aQm_HjFX54s= z<^$QZ4z-b=-i`bM<73Px^lZW0sucdc&Jlh?i#K28NQqtmg+g-M8-*g)NQ{(Omv@DK z$|Zul=rqEW_in(|J!D{d2J6V?tIX1Bm-^9vKHFCrc&MSFTgoQYXkZzyrZyvuP%Eb_ zZiq?EQB*7W46G9wd5fBs7K3lHJQ4HTAhePdoPjN1nhcHwvd@{tvF7cki6Vjf&(=H!eyQ8nKXbYAeXG|(c?DgS z8@9}uD4K~B9aJkDuI=*l)S@Ox*`zf|BYw%em&FznmJz4v&m(#!+rG&RxIbHwGCK=K zdOnQ&0Ckh^=e|9meK=zK*jKN1%E&zb&?>%A)U?-Y{~P>mZ?Vt*>SqU@^c61c^f8m+ zvgk?e{R={>w+OGN|Xg%<_KfAJeN#&lA3)s}x*(-cCM`{$h2_Ri)Jx z?fsRXiVmLcJfkHtVJ41q(@vR{Ml=mKSb~{+knY5$lP4^`UuI*>)!tHu5<525(3zpK zHLCgVbuE7GBF_d8oGsVz;>=zdFPtTH99i%$eDtF-jC9H~%WWu36;auQi}@8kelqsz zi;+XuMt1t#TiVsgvId_OnVzVI+3`shUXa-Qyi^H(MtS*$S5c>OXZKV;*7kKv7Kqss66hHlvSh5qe~-z zgS&cY>C7i}!OKq{5$p#Dgiq$=32IQbMwt#{>KT7DKw@#T)!H+Zws&!tj2z6qm6ZGI zIZ0uBcc&Qa7C&>(PuFjG+nh2w?Gk~yvc&X9ZMPtKt-gGoU0?5FyIxJDvH>q$w&_Am z7g@!|;FcJ{KANwl$}QfYE^vSsA~etvu)Ut}{n1GpK`FiGTd?{4fz0b{6?IHXfLdHe zgj#)C`NP58PYCn;b1u?+jFB?#ZD93065+RTPSzbXaxh}x8K>g2Mu&dXggQ?9us^i645jwfExuMnPW%B*maU7Wp& z7l3H8 z%+gVLweI~#Z;K(V86GM)4Nf>X``X=CJhu80a@gpfbYV(g75Bz)AjvjqXo-1pIpPp5 z^%o`hYLJ?1%a|AfKj1A_X-Zr0ANjy3E^)Peg&OpwF`BLGQbw!$7dnH%O7xH!<}!%+ zI?L(%87U7$_@F=7@P5Juv2>B)k#+(jBdrCtfG>yJr*|Z<{m4d zo6Y2{MBpn}M`U;1TGjll!BVYjpp3xV@oiZ*)YxKOCpepdVZI2zL0)#MeKdKp*iyI6 zU^i=m=8sAAW0Hokx0#{7qd|JzpWF?)Kjq_E>#MU!NRJ$2#-wx|_)4+Nk;`F6FWA(Fy!?H`h6$?)j;=Hey zqroc@kwpgz2EN`e5*sg!Ol%%mO`0c5*L(m2p1MLzD}F$T^?=X~ePkKN{@=J_A5&1i)69r9h(0fSE3w-Rvz zV|Sy@Z-byQ7rg%6RlJU4(?_P=0>9!dEsRE&U8!Ro1H@jvMSou-_)&A&-!_ z3lPzV@Y2LMi&Ti4TTtu!Em_A8(H3~iEfcDBk58)vn^{qk4A-ESJv zIA0KyNFM1)rY*TKyUSmnx2;#WjE)`=TMc0s|{`gx@i38TbSXJ9;o}fj3x{!f^|A<+; zHr(d8TTLL9-tVZLm@%=6i5lr@-zi@3ysXVpyCQBdykpiScD|S@<>zpG*DW5(WWLxL zDI>KM`IPD`AE6*HfN- zx{h=@P=USVUh@jh1$9;~zG9_4u{Xo0nv<8FmM^9EgsgV)#fL=DUa6^?x2}DiTzktOoAEmjV>ZgyMI>slfE=wYUAH$d@(a|ab8D?)-iMPi`o z;5}w2-%O2PYj+4QpE0XSRzVaW{yiGu?0RG8Im*YGd|`gX%vH9}Rf032^TBeCKlqSe z93%y=?Vanu!C2kySXB}nUW|}5$3ilT+F zWZz|LrD2dQOR`7CPFb?dsBa`&8DXqN$gZ+xn^H8{vhPeGTh__WJpViB^ZQR;m1pkr z+_FY zvAhHP4S+%Q!a0t}nWk~0%LC?s@#l?Q%3qp1hSJN1)~P@6V&KX$ukcYO@1>qd3tyV^c=DtjK1=C$rB1r7#bTl2!)>>|E)TH zbm=RPB|}Q{&)?}FP_q7;)K_Eqm*l6Ou&$v7gDrLe;ZD!`yj$&Bb7Mt?&?TRi!%g*< zo=P)!(MDHBR#dfhGSrbWP>;C-dB3C3el!x1w^0ygV`8Y>GTeSMvbX7S-j9N@;xKa4 zr=+@wv?~vZ7n36`^KVJh?r>?Ypq{=Bi@;Q`CcTSeJStw%tZm6e%p~iG$Fxm#S-1_8 zK6)#7R756k0@bsS)lqc{MhsHcezF;`0o~2pTp{u6#e)3D6e6u`Y`$zL-5wkkJ>ix4 zA%dSoISU?qhOZo`N=F?lmIi)=gR!hn{Gf4m%)q@<6=Q-4SKUcIL1W<#Ng$#Yd)7jk zkgymlros?-58GkNdk4z?JW$mqR_V=|9E_|vf-h4_kO=jov&JaYx~B(zx(mY;Z>ibU zE!Ejde8?*@+*n^0C3JP1P=K94bCJH+3vBFxRoCo&X%s!d5tZ65vV^Xa z+;U5*ed;ZxCsC{VOC#>tE`X1egeY)`piExsc*A`vhe^6 z*1>)kyUZvjo_r9A3=)kAeST!=Y+%QcS0MeT6w{vCOa*}J&cKAq>Mp@453yoaJzT7g zkTX-eAqVSsvI~%HY=x~EjFp{Y+Q)f)PL%#&F!vuxu)mMW5IiI!sUgoi4_9TvEgn|R z##?!Z@w@W9L#Entw5B@mk5lmi32$C)XZF?u!oI{7C2H_#=wB@W4?hU;xHSP_BDs3{ zyCpbcNcrMIRCK_+PZQgoMuP1J9Ef78c(iZ4h>P+Kj{H??$U)>UBt&TN35cH$P%k~7i%xpbLf=<%r8a6VMtGo#xGICR@rG?-91K* zFRF}RJI#%9GmOan@!RAQnst3KiyOXJn(nL77t;isOmO`4SZ#{tKGOfO*AzC|NC}0O zko{x3oOV`MHfqIA8lA_CGFwYO91e#r>^&c^oFoxxzi}i(K|@V1CwP1l1*LiHJtd2B#is0)(_$}rtRGm5JqiLspbqP$Qi#bayg$9ho0Vx)> z{-IYYC)Y?b(;r7bNTIa@RH;<uITo_RCN z`m@_nqr-lVHh;1{lU0|-u0mn+ScK@};MiWPD8 z?>#JZ-zV9FQ&5Tec_l?$-%mRpg4($j(v4_BJlQefIeYLC=Ep?p_C2AxfsUJygXXD_@P+_r~OR;Xs=N{CL*CRU~h9@0RoZu8)aW zW;!p&OwSk1U%i5wQo2Adlk%KAwEJ|3Cgs%GDe4BPdnTf8)}(_ND@99TRh*mV!4$0x zDk8mP3m2s+jWHK8_C+@ETGxcjEjlm4Bn&;~pQFI0sLe6Hn(B81ThMpaUW}lHs&yCW zVYU`d+Ha4)Bkv}vLLPk`M#0QyuD-1Y3sj0*0wgomhZJu-fh1H~DIIu}?avz~#s$1& z9(tvkcQhRUBEj6T(|3jN0Y4fYDB71IOi3tO$?*MIgLx#ZYBbammJqRKv&vz+K<-AE z&qBfef>uX&^t{gPP_#O1F>JrJhpNS!XA4IRU+aYe)cnZWdPbM5CR~$J+xd-N}2QApdZxz{8M5W4G z!u>}Zn~i8NwcWn#AB-}8Vb@ON%&(Y%xAfQlQo@G#?bl0Ol-r78NJh&R>TC3{3y53T zg1h%mav6L5aVXhM6AislDGX{Fp|}^S4wwlM%Bs?HKmDr%J9yVWcTq4HY%%75KP*VF#KhN9y>$(r_%~;IO7zeYgHa4=X4Sia_mdHp zVxN`W*XQO!uzfp%$Q>)ny)X=qBROgO`mAzjgT)a@-Q7-#l27|nx}7rFwy@x z%IM91meJ;zZZ*`QIwDOA1>oz$b^?~rGCgOAmw9T<@EQRrh`iVTsnepUWnY@@+(iap z@mc{<{lt_QMLQAX30 zOf)d+G2Uq+ycSx8Jm$)K3Ia1Xu2PnbPTW!>UXPuZ_mPpM>vzu#+levIp>dce3(oh~ z^C=>{)Cw2(#2Vv#iEWRVVaYCgwfrkJSmx?o(F#uq!uRP)b6>*4*jD}+13HZ6JbB91 zqBJZ$lGpj`hkfnNH*y`N14))O)~8PR$2tPsqwM;p+|C{LqXF98{@;ggU+UeJ>*8ol z3bSAqH2=6In||a8C{;FlvL1jz3tzp8DFZXx3WC-V%+;F~qLKbQJo8dp<8^IcAjZ90 z{Tzc_gO{fw_?vQXLb|aDz((kS9epjclc@i~VF9@gRO1eKE~XfzbW8F&_#L zSenEs)LK*~ObqEzIpqGre^}c_`^ps4;V8f(Ub9+{ESBLjH9_9auJC)P>v!Une{CfyYJp)XAt$qmy2n zEqa1fp?;{`&OFGYg3KnGmAoi0;65(2c$AzT)w^re_xuE#uLyb& zkq^(=8xgE7mSkiK32}^$wR17-`Wi;Twx(Z0nLtb{qq_LH7LSc`?J$6$V`8)qW=2`u z;0e0+)zTRPDz=P&4zVCO&@u^!v0_!+DpDtVPCtgb7F^r6ldugDT?6MuhN@Fw&-n>6 zp7x;!)c})MouZ^XcGJtG^rX`T*e?fDcvFcx;El4i`PX2slh1Y^dO(r{uROL(ATIyX zhT-+D(b=B}kTzDFMt2mY0}hD(1A!aTBqIzE=p$o~A>~{=^npKJ(0@?8{zl;dU-@>b z{h^)oyQUE2Lj>FUQ2KHcKbZCCMDgQLR7x8v;ni2qSevO=5k5nRfJl-L2!%P}J$Kp7 zbU^Gpvhf@X#WsLJwgL|_*gwtOU0s(BS_kOQs(d_xUvJPa33X^mx>){Cs$kX8zk3WD zIsmt?6c`lKSm>Sx{XO@2!fOc~KXC>)H?3glY_HzLQOKx}a-%Ql=G8u6npNi78z2@!bTfA{U zo{_wm^Xv#8++UJA*|i`i305Frrc-!zR9lY5^x3}hhE?2l&mN*A_E%R&E!NKf+@npm zvu)}^UxGEqrVA+T`xlt%%lp$#9Lgqqb?JZdRslBsDc}ESnEj+5DD#oxX?l~;w;jm#|u9Lk@F~BJYk|fV9VW0!^8S2*qFDTFb33A=F zmHnM-rJFs!ht@m-gi9!K3Ya(!P8zsrq-eIW`X*`;=!~zCIVTy9ZZBx$0L?evEV!y? zF9rb6q>*<>xZ|EAVw@e)Y<3?8`k(rtu2+cW1L%bTpjnU)h3R2c5OOfTG>||6F)>I# zAjO@5+yv5ApeN$O0q6X_zJ0zF!N}O|VEi-@RKLY-SIVfu9TroYlU8dj(h?dQ9!&J0EUtq}~-(%12pr23pnLE$z zwcS_#urZtyP+3}Z8zw*#{?2{WWR`c&Q;+~~qWnTk^qebl$nbn`Ajq+Smf}{<4Xt7T+r-cO@Yn-TmkvZMH6`mA&$`U{FhSLEo= zdUta4`W}af3m*Ykjxlr|8$wv}gAAhbNuY3-AWv}xYDMl{^4nc9KL=U;0LtO1_tgo; zx5HO0DT|RKfNjDHwd?70-(QSUnhtg{k<=X;7pKgJv*sRyHlA;7`Lh09q(mVrmf!5w zB%5=A-Abm%Wv})_q9Bth+G9cdyf5jZo%=lXGXW(8U%QNm=uQm-x>&5yE3^Qx^MxQ| z+`vrtB4^$+-oQEG!hCR0pdftTp2C(mQgeC>0=kB3`G|uX=^54d?@$_x(Re$j?$Puw-cor0CQ}nT(W+q5rq1I=d z#}cT?AD+m$d_q&YBSsv6yc%rZap7S7j$i(K%|h>B;|;FIIG$t_4bY!-%fqZ(2EyD6EMV^-kmY}TAU5k5e1fpd zA&?mlNNHzZ+1&>39RM&)1#~{F1lZti-tpnR_$thT?m!S&=g(dJfp+>!q5uOQkqzh! zp?A7p!rkHCAxZa`u7g#GBXuYJy&U=qt-kgHa^u-u(M8Qa6a)x5-h50gz1Lih!XdnJ z7v&#HQAsu-Q2w|{8#X1&$LyjO2huIa$6)XV-EKv!3Tm8!Dwp{iqP4UU@pi3yrUWC= zm)ywdeUM9Cf@q7V>Wgcp3@U$YSST0(g|zUc>(==QRrv0_!My&SulNEuXUS^O z2FfC-*})({cgPgwJ6C-nH9A_*wIHikJwaNQej1)RCs@3xO1T@R(4`hC)qf9O z5I3Mp!WzAvbVBuIrSd0(HTt-tAJyk>e~-3A?V|3`WR``S=-!j@tzIuCM9V@0pEE8j zRy2pXo{EeP`g8Zt*1BDNko$2D&Vy&4Kd?xZht(WT_%UTOZotSqZz7($K$Q&>_a zDbFSDUf#s50Q<2Y5+VKuWkU@{&(X>~Dn1efw@?qrOJ31kQwMC{ zICP+wimLtde!K@JO^d^ERQr8=vkt7$24X<)mV3sD5P^>WpCv!8vw*_A9fkv`$F2t`GyqFZl zA+ZAm&y)iyp?k7NH2c=?B#M`0Zu3Ra zGS1-!NFr9ny@{7R#(QVf*=|^}yqL#|AIG$_XY%?&_OTK^sw+Y=hp<_|C?{cXJ-v2` zbl>LGlou8QqVhoXy?l^avrN^-XvQoZp$ znQ^oJR1_s+Wmi8!7P`7&HN7Xjl|BdDb1QZ7lFGMj+ikyHx$MLz>s#D1BC|6dXa*^DuQke zAgxVbE)CYr7){n~zQ_dtV2}k4CJdj zY1#jv7iZo7dNH0>&n1GgOX`lS?!|b6xz`tf%*^=*v19ZMuV>`sp8LVOV`c8Qzd(vC zt;XknLLj!p@1Hb*;Ay8|Md0d>%Rl^qKD7Y?;sI<2YlQya8WH<_@|mJw=G?=}j;zbY z{ASI-feOgA?Ho7KzXz<1S|_h>lD*tjLyX(6nLT5%5xu%PGTv=IZwZXa`zS{+yb6lb z!B~=DACEc|5N{LZC$%&d)9XbMLyWWDf3(z@f7!ekl#|nC#_=Mpw8Qt&Mdx)Zt-{n% z=Y*+wAD-N7DrZ34g?af}1m5=N+bafp^CI0o8Cr;yf4Bt6a!jZrpKSSJU8cNfFgf!Z zHBkwOHSel-bAGiO5oBdbb6Anwf#Fkj1i|mvObhXgwcl>uzeu=w|6!tt{0LHxD$(H{ z?GNwH#6TUfLY?zH|CGXIje)zksy%KcF>Hkw0T#t zjx5@9$@**8UQojWVHGj&TpVEo)jmn*DjsuRpJ~GKPj#7h?fC$e#s@2H;k`d9>}^-a zB(^)+P#MvS9oBmSLQ9YhPmIQR!3bm-+r!`Ny2pm$2jh+Tnz=BjnO{P~PPq(TeFD6N zIWE-mZI!<)ZK&`59zAZS|MA!v6v%RHfii**Mr<<%AY+gOaxt{l7p^X$)f1R>C1R1W z1*PvSSkuED_p$($nZI+(y1Kd_&f1_{A1HHdp<^eUVjZi7X|0P#7S0qGHLOYfgR)`= zRg)e$I=45_x2|V8&QG<7)YPXi0etyL;|+ zMT94!KRpOa$$kVX<(~uC;})Bc`vdCYPp<&+rIKV&aWKxGV`#Gv{*D|d_cLR_K5UQ% z3aH6BxtAc*vD#VNp8%I%p1Y-rT*yj-AqP#r{}8nvmbE58du%2qB}+usX$(rNH|DDD zpi|5xR9k+)K;&!+tPGMoD88Hr70jmuaEJG`lkbat?F6&3?LI_QG=4Ssc#FjRq+mR? zU@cY!`5tGlNz?uEzN(bi4%SJ|c7IuTA1n($ zrY@0-wKt+jM*6d!BBf{vf>vygd^YfR=W+oUgxs?j@8}tP%?Bl#T6y~TT7LF+MaoQg z=(HG8?RIq!{?-Rs&;)yBP-p_A7$j5oqWJ(JWm+5o>G@vsDNt!fDTx4|%I1H)YG-D2 zSw2tV#~E9rtD*vc=o8O?QX{U)v}}-u7<64M+ZHhXdr=1jNGvy|1SxR?NIk%p7k>Lz z?7F3rtI+(5<|Qq=lv582I=}5*KM~qljilQ_l0>>7*h2=dJG~Gt5XDji{;$o+R=kGeSgbM)$+2~wKHwo zA~&k7O6P!8o%EHL{v8BdZc5`NlUDxy#+OHZ0=80r&Xq)%o>8WWqzV9;wyrN30|K@o zE)KiY1J_jhpU?cO1(1c^z?W#=-tV`Q^V>BlNTs9lKBHpW)@SHEzGG!GkLr>mdl#x( zJ^p~QR4Sf-XM}dj-%GLfbe4IxW)l9Sv;i;l?p3)yFW1x05X#d%z!E%5BOlUWoH9C`YQtv^PYLnJ zQ~jGN8Cx3I0nxLu=7t!~lEMFRWSqPtm-qGk)oYJ2uU874ui0T7PDbF^hoLPN0laXk1b9E8waBEB{Bo(EsL-^BvW{qp??Sg8AbdE;`EO8fI#> zQ-4FWU}Q{cjVhq|1VbZO2mLy-wEcH{4COcvcp|H4UdptS@ZD~TbUlO02>_iWp{;b0 zc1M(5QDE)=34GN538HFm2dy>Rw=d@g;gZ_NHx|!6BhRtGF7i+rwXYv#p)$YAb@+sM z%z+U4)S;q10V#{8yzh3WxBEmY4YpEoHk)RvE(#rte~|wF78Ch-I2_hI=^1WnUCq?r zx&?==YQPv!F%03^RLx(0jkeLl&iDVDj#*z^YwP&kjDdStq0w|Y2bA5%$l38cVm6BzQdWwZEquB(SiF%dGG1SfCQ%|&WXsAn=qFnIaVX2b zLzbOx55Nv&CU)ymW;te!_Ez$|vX9t@;APj<8j&30!n+ojr|&>H3bN^i3mjeUzw`(B~qZF4ZpY~nZ@L!OB##?lDWbTUM zZ4KkU>bL8BUI#9EoiG1)g52!c|5FbGS=U8BpN2E8_I+>Cv3Hw7=S1_VSn9iY0F7e_DlU%ZnT(xC$f>A9~AsLa&|lU8VO@;Tcm#=mECs#CvqQd z(0F~Q?N?xD@=gf9Ui|?tRC1v%PAUW7_<37s_wFeeP_c2Y_8H(9*n8rV*JMu|ES>J# zVzx)z!+ku_#zb|NmTq3hdtBQlb|FH4iyMzg)tg4;ZKwylJ&?WJ_5WKyjxQXJPnv+T z_3z`ymN&0eW6;O@St8j%rA4P3%;UKb*}YSotT+5_34J{IpOUOC*J_zG*144b2qH+s zQSD&G0j3LNgilM)KZ1}gGUeaBBmNn}T)qDP#INmK)cX?^Cu5w;(6gf5dIcb3m0-G2 z4HG>U5uCqRoJ7yuF}fg9lJ8NUIQH`Na6kunF-qeYw>y_(=PzMCiG+9lXns2gn+WKG8oz1rH! z`*~?)mIWMESVM)yrC;meLizDm)% zI{hgXDMy9t)f@F9Yw6h|%&#nW>S3aCwr!NXk10R*<2^mI4|Mo^AkOrU^0nhTCh5*> z5#jmOPj#rbo$ahn1^`=1E&J2~*6^Rg{^*@YpQ>HT1aUo8sy550M8CH~CZO{h15fH$ zKS^AtZ0%0@Nqyo1lZ1J-31`LWEp4VVh@a=2No!&BWc$e?oYn4XU)>3p-qa%I^0Z9w z7-~Vpj&6BJu&G$ihdRYy*KjEeqj3gXk(!1>DLn}^>Qx~~ahSWVaL{08wrkr&GsZCu zj?JG`*^H0t%uzuN{zlfF@RJvmxK^-`_8w+|GuTp&Nh(*usv5zHeS&^KLo(pCJ0)lGCfW*3#8VB~vD) zb9_h7qv;p)L^`Q7nV|rdAJt#<=EJqN%_fWqP4&|UCwwE|OS29pO7p@Um81AoEf_zTZi@irE5d@bNPel`P{gyfg>+*JP;W zE{&a)&LK| zVrpJ*`k{+4mE*(ncm+ePie!YV4ZKea&R6kCCo6?ib$SXRliTXBLWLK&7Sf6$OpGg3 z=DtoLy*7u};|xBwB2ide4Vo|!Y}@fIAHz2|J;tjvMI(UK)PlRqVF!O9$tp|dd4{|1 zwfU#xx;Y(Jg7HCG@Puanl_vSh+!3WIRnS%&?k#+oqHrxtUDlHVU0I}NDD8h|pa|EU+B!jpfBe0Df$o=v98c?ns&|{r0Xow$?uc~UNa)&SIR?c?xq_#|K;_EMW_Pfey)8&*IA zvNOdbU&H>%o945vD>lcZ@W@j?-y+dICy5giLekGaW0N0$NIZ?_%Zh`me*B2Vof25E z-PIy~N**3&!7GQTBZYPR?mrNeQKH^C<~jZ(42*k>ew1z}A+FOirbzw;q3@`|TmNZ5 zMt<40d{VSgrT07Sp>Er;;81wX*8-wl%8ToaP1U|1iVKuo z62$LTC}Pt^aTc=Jiw#J%_x39xw-X5s_#7?xRO=i0#IHsd9|iF(g~k%R%dNYdfi9bg zC78+N%Ct;e4QURKXuJKA&`^eKOGKpF!1-uv!Yii(?=g|f3#B)4u>|40hBQyJ?O6xF zI=f1k_#ZB=v?pn<-MEKz)|yN5$RCNRQtzj3%d7OT)le8ib6+$&3vFog+OatvYJS}s zy?rh1BuL2F2#lztFVQFvGdufigDdYk{DEgbAZkuk{UlRja6#nwwV%-alQNTYzqzwE ztUAp+3{26k%QpC8Y6&VI_vIpUd;q2o*p8Xuiu@^8=fN;lgbiT}HT`Yk$3E?V=F6mtqQ)_ox|3Z}Q6Ix|M+a3)E~>G1IqJc86;6 zA^IBmEZLv>eNNK;XksDWuEO60&AbyvS(YDlv4m}EwATHi5#3@2@>pD_RLn>DrKUz> zJgYmYX!Ov|c3h|aUNddX1u&CCGmJ!_g5{qR0upLeY?6H+a4ey-4&h~4kH*388{ zYP>_BOT#DZm4i6_{IzD1_iu$ktQ|skm4lA>nLWrfojHzEq1{m?Du7$l87$35gl=8b zfuor=S^Wa`t(#ArUpQtMwdK>;Jf)%XeP8_#+DMmZ08f>Tj!Y_z*qKsRD^gQ1Ni%suUd@1J z=YXG#y5>!VaO@(SowBjjS!DHfN>G65-4Gs`rVJ4Gbk$CM5R4|Qa@5t1F;yg?52ikv zH8KK3Pb{WJ_XQ!QWLJSMcNkfaUP?62`98rA;@0zR_)38cWU}}DI@L&?Kuy%!rmEia z#fJ7Ps(6`?rPU4iyTVx#0TX4Zp(?b>ziD5h+S3o!L@#haG&|O9o2yDw)xLGSI6?{u ztaXX$U)mcXDWu7)o5TA` zdWBk&@(qw6vNk92=YF>piCJ$^vSQh}#N~_j1lulc=z`JKXtr&Nyh>Kr zl%OWRD)3CWDC57LLb{D{BcG}bAWX1dw2Eo5Z`*v7LgKijfR46=?MxZSIKg{xgzCwZ zv1{wxDOAH88zU(sZ0nnHtgqSNSpxv6RIVL&sy*&!n_%^sipYUC@oHPt64u!)N+iS* zBDCS@!;=Xme11wxJt?H2);HfJ46j}bS=Gigf2`RK62SKTP8o|gNcwwPpD=M9A2DO8 z+4$X(=!iiRl%QOk(R@r>Kpax7u(^87PJCDM|%=IO$N!-bJF5*Kha zB3bu`eXj{%eI;-^1o6e-f*se@RX~P=fdN~aa)87F>y51C8`1eFO08cr zg@4WmRAzmco_J33$Lq1p^?aN+!~1%-DNt8r$El#-exL9TUp+dqh9t(PkSaok47B9S zPI}xe1P2>>KYd^~vW6AFD#VfA;AF9@$hsN^iJyX)A+NSRnuPvc`_HDUvjp1(DH`+GxG}xRK@bxJbyL)f}RU{^uZyfV;3$L z+}Ww(U4X&`u+>2qj8wS%1V$vt#XE}cEQ@~Le*J3z-`-W7)Gc^)4jeWPzR%x@k{Zt3 zg@p9cQVX|V&s&2XJMPkMun|A=)`d2~V%7?8N-^(9dWN-FZUz$##uy*iuVjF)w6(>v zM6l}DhCORdc<%%UYxj&Xs2{QzZs=PQBEGBR5HTQ3s0M6s^Bz`dtGH5zRI6*k1=23j z)N#aqETk&b*goRmUAkx>e|=lrp(&j1`>JQ@`1p94z8r|VCVd%c%~MV({B^qZz{c_A z*+QJa<%Q2@;{=oVln13QPJM%;?4BhGCZA^{*DGk=;@G{tA(2`J`l}4vu9wh1Bl8E4 z%Z9)Duo40We-L(Q6{%JVzWSe#+p0?L_lA%#AQtQJBv2%2G`anK`egu{0`2M5!kf!K zyo&z342VY#)@Z&AiyIRTn6%Bvjl*@9FC~0FeP$}fKnpj`TT{$x+1Y>CGMQcyE1Xr8 z0;E;_uGiVAnhJ0olp_O4k8m&uiYH{L5hi$nCeeli?GVuNW=jYQKv?Iid@)%|*TzRv zs1ENbQvpt4iI*MxoDvd8nQ*Leqyayd_zr1}i;a>UZ$pX^fZAa*JgKjneZ~ z#n%VDtw>)k)}0(|l@WB}+H5~YvimUUJQb3q;c~lESJA1UKDdw7cTqLb0F_28bCQ%9 zV7)FJW}wC7(1~2rhqGqK{ce4O6XjdG`hxU&Md2|Rvx9-d%9l1NtV1X14gC{fsWEW| zZAvl6e3$0Ku)UkWsL)ho#hKS#rAZ}dcJi^yOiiUoP`k-tY0?RrKlr$e+gg>zXez%V zj|9T&V}$O{gdr_0fXRLIscquwHa~W1B4zRLunU~wBKEuh)-Gr%_Q+()B3)n~%SW{M8()Wv*&vIi#IwH}9Gu&yzW4RkqX&MWog9VxIKx5$jy@5t?fs^t zPF*RVRXVFI`vX^VNRcv^3n`>bOmQM1qM(0Z&>4%L zx02`T!^;6p20h!>SE8cHkY66X?tvFUqSR@=TYSjLy|Im+q;lm!1^?u}~1_-m3 zVs%e-Sd)t}VO`ss^Tx#6_nn^46s@g4yJ}9DD1H++ zx=5i;rFbWbv;lh1!53%8jm}kP7RvrQ+b^}oe!Xz_71eOM>7V>hWiit&{j5F-$b}Wx zlN(4&dw7o{uBIQE7xPEpnfbOb(2}?52YHE>K`Z7yRIEbixqBW_H0$!%*!x$+0HX~2 zEzWYv#Ke2wdb|o=)$Men_c*F}ZI~_>A^OnrJm)QwR=Uve-xuUdU+&4FK}Fe9rTps| zcr;@oZFVzhc06~b>LiFuzgP?Gla_KUHxIDLQe}lZO%2dlTtUlLoIYD5wy^FBmYhM5 zeVpmz4hdWhUq^w3!+R@fe=8ZKC5oxHgn#`GR*q5Q zQO}S}6m3Za*p@>>c6&f`n9ViB=O;SfMZ!1bvEe|pddz{o5fjUpnWUDAkz+x^nwrP$ z{RgTH85VZEN{883rf zajd`@C4gkh&}MTseKOZudpPCs&_aA^gWMq6J^k*w8uRgum! z=_Wf+aWLdBxN6>f^^AJ6ap45YEK z{12>X%ymr90=+ubliD_`?tFW4Ea}UYnXfA~haVRl^w1@<&8%*Jd$_%p`a2%`Z^sZ>Zw7da?LosiQ zLEyjhRY`u#`(jOLEa)8<$DgZ!^1XQ5shrEymvgSTqb`3?^quvVwZ97N56#+_-~Duv z$GnFd%9{S6hn&uHjJqbLV>MpkKHlHyY|~KOiRZu=j?zJflO*GxP~c|T%h0};{QkU@ zIR3<#QY@tTM&~^hM(~iHDfb&>lJ+M0+KP&BJEeQ|YJuGK-luduIvE@4fDCk!>9wHe zLObfF0hV%9C(d(I$zn$CMuHuwY&7rgX$JmO3*#Lti47|uyE>3A)Ddw65rMaikYjUS zOTwZvbv`Ggowpo#Mn*XG4(>1Xlp+)M@VoG=I*{J=r+$fxJGr#_jX4p4L*NKewY=U= z@F3OLQabME$siPWv^^pGNv8}bIN<8nJ5J`a1*LPllVj`0zygeOl?7Sny#JD8!d>Fz zVnzt$Tuu(sk$c9O=QUu)9gxLl-PiX~lhWqAmWb0+JXSGVGrI~{KyYeOeS0(V;b=U1 z{2MX}vC6>%`^Fx>b5;b0ARxaZwI~u1`!V|@-4;%0u>IP3%ysJ%C+K|Gbzo~a ziqZtQss0EiQHioKmG_yVmz96+9C+dj_nssgn)5%~$XCj7vd)Mczl-chOHbO%J_2vt ze%ytwE*=M8mOUtebw2Pptn-RDV1*2DrHQ!YrG5{ z_b7;35 zM%)%`b~Xcg`CgOO5#AmKT#7XIoOnwxub*tKL}i*d&Sk5dximbMpbg0WVlRfR1uN0e zvN^*&0!Ld{4_HGSlKzp6K~wV%ft$r}DeJB;?#t(ig)UeezY|o`>%z5OaZln$(X$)Y8$y3Kg4hF_A1oQfM3?L!Qwrk9ZNiH%!8R5T zU`GO`IzD}@wrwH-xR{S4xP70ekRD@LVe7NY+WrblBG&R*_KxEKO3?t9er8#F^8#@S za}wAHU^141iNUJD!XS5ZE=zW@8VsmLVo8li1+Fd91;evsXZEhWnfUn$T;hXSCK;^! z`hcr3AxvBi*fCI}t>Mp_c%mlbuSZnHH&CuH)(BCqAe7D7L&MLJcgx-tk1t=EAFn+P zs$71YNrD+g!9tr)s1ojF=EqPs*N>TSXK^J68twe`R zU9UZ+LR{Pp7oNHb;7a;5pyA>YyKvTAkO{pSmLViR#BpsSEAWH;%EhslA#HZ&ik9yj zR>^6Sn0iQ@5zcboXk!k9uTz=8+UJ&=H+={b^;>&asNJb8`^OW!&o7n6b@l~1f`qB@Jl0@^FZSrceud3hnQ{18nynL^zhC0td%OIUkfe)AcIg}EWZ{fbxVV$ z|4yTjl&0H3;`Ggj+YyNhv!ZKOXBao;Vj{|7lzFIHj*@h`z*0`Wn|vWEF+KK;VcwnF zDJ@FvYoD~ubDu%A<%&zVl$0Fd9q{di3a=VsC&FpS;zq?UewW&u(i~|W0DrU``F{Y zJmT;fEQwpc(pWA!MJ)5fD|FFLKrP#)UC+Alv4p3aZ{M&ca~pEBb&Z{pHYTT4hIFzAltL28hzA?8OGk+W z)j`MvvmQUT&Hwb{<1ng()q7Ciu~n`Mz^hlI3FKRf*JFx0mH*dW)r7tSF>s8vkt$t+Z zB&R;v5Nh{^F(`yd*ec%rP;aVgW-h6i}*k|-fWl85eQkQCx zA6_Ex^jv+#OQc$y(4V<%kb$uyV)ESsT@F6Upojje0G z5Gb$f=7F{RsOuU!<=Ip|399kByz+M2-X$mMonCpay%!Ek6)-R4EWCwH+{Ow1ev}=) zdQvmw{M}RMi(=a2if{A(PL6MW`)t<)Fm_nVT<1pAT1_m!Yj;4n|C}bf4yxJ-XPUEi zOVq`9Xd8u7>7EQKK04d7AJ{qQ+~m2K{s*g2!gt7XWvA;cdITl6Y*Mc{KV0I^HK*dKldZlIl#!-bMMbiF#y!I=04hBPnuaU|( zw1jiw;7@Ha6%YK^HAB>?)PQQ|QtpvaGHbS1ka%<&1k;}4j5Ogn7+-cS`HwilIDRgK zH5rk54qGU`5S(GZa#dIW>c6Rq?ZR6f1uX_#0~o`mCYACC~y(NI;5j=-%L#EL;h|GfwKdu$UG^Rjqv3R-C^+64tC}z@r(i zlsQ}Ej-6cpk!Oa#G7$X0u_7|!`9=7CJ_0N20hpCe8EA4(tU4n{!d-rGk8|8cpXY$c^ z8jkNHsx8kyD;NX1Tvyni*YG95fiRJNv`_nE*7bsz0ADSq@5sFKSUzE#O7GV@j=%mN zS>GMjRMtEkiYN;Pv^y$39ytB9Kf5u~VqAYCDp zP!h!!6tDo18jv7JXo8dgNxlhX-{13m`DfYdy{F8XK67S{=;G5XlOfJ|P?=w`VE)M* z8kf2#xBN?2dfdZ_f6si@^=n;EDtKMB&`~LVevGgoW-Zo@f5a=D01*z^; z)dpGqDp}1F+dh>osP*jl`Y)<5#jjTT@<8+IjX|__P#YYxNDe3QYis3(-mwf!l@&i< zH!DQoQ!PWIlbRv+vGLPc&RP3nX$m!oQ7*#t&I48%gSC40o6f{hg#=?mY2X&H4GzlZD%)&&f%oOrpoj zHJ6XZ0PDz)^Se>CC&je0<@@&H_=+zLTR#4IUPc244yI$;z2TH4>ow^1ZQ88P?YP5Q zQMo(dui-9<;tw{pn)Gkq^fj=1Zls_=_Cp9T=QnP4JtLw>Jo7r2P-e@eI5cvKqO&*o zHFaEEJF6)W=^fQ&Ij~CgXg7Z}(NQ(2`nB26?@8g>9Biii=sZd)04CZgu4^5L6#K!YUp92=ZIz_uhA<@}UZjguI zrMwgaF%5Wr3>_gCtT}#DZFqVn%ErG|?CDOT_B}I)FW0+xhT~fBDfm=qE`RT637j|X z$y)sX0-9CS`oOd0{I$W)lA0mn2f=`ON^ysg8vYW{$X~>x(b-bwS!EsUXqo0|PiS3f zrm#9qY#~4Ko%ByJ?tZSEUx; zwOCU&2W$D9GPy|KSp*S8pGFS()v7X?4MEl&Cgq7{4oQ~op)80qD?o4qG&iibv9f>( zomGzio`TPI9>|XVsoLGLvF9HG{qXLSAU zUA9t?zx5E z?DIl;?6LSlh%UApkotw017^W|ev)<_Hbwn2sT#7D;AOQSJ1odb<~Mtl7R``bf>3x! zfGTn3D?AXvpV15fN3`}=gp*rZzV8Sp+pqC0q;kF$mU+gxo@?F{`gms_B=5B9pZOsP z=@==KyU+Fh>MPR`utdAv#Qj&zBKHl1lTLr+S4>EBTRTsP^<;o(he$fznNBylXLd&@ zUVVVxz-uf6XQVmZxg>DMTe~6uqy@W1&M{rAVQmVk{4b)Sh=Z-#pAeGYLrfog$9io` zqI+-ZBH{J2_IN7?h=H-x$k90Q=iF6DEE#Lo)b&tS`f=O&+}V%kMnZ^x^3s*Ro4l>B zton;*v?j&s&5p+#X}%nXdb<~YYOs2j4A*woj0~UAN}opE%&V&(eLC$L8Mz<-^A_Xs z{7CtRN&QpNkaKWKD@ylqPw`gMSDhadaScs>95Jh4Rzv-WY*o)Dj&W)4m27;$R501k6f~>YD&J$eQ)!xQ(U z1;6-w$R|3YN=)?9gwrWBL)U!SnP=|otNrN=$AvcI?du0mP0%%6i%(@P+gwZBxOR45 z-zG@!*%zOWOs#bN5Vk&X_vfFd4VdOCAHJIYKA$du2jWjed`ukn$;k9blKWkBxlOg^;lW|b@`M>?&!Z;$9F zW~RN@rEZu#1BdPUJ(Y?8#qbH~^W&q|kQ+7$=~P>VE-4coK`v$_H7jdztX}QEje1t8 z+~p|TEoPTyi5q_>$b|9&j#WlC<7tft_CUI3$l|`;APvst(x})CNAv(4vP!-$LNXnb z&#t-M(DnC^Jn|&#_TofZ^&t~aA<>XbHnRwGZZTIo*~vlWo@6%%@3<_}8_}PRCl1c~ z@4rRsr#WuihP{K(<b0e<{cq6#Ha9;GayBi>7WLT?iGe__UamCv@43&3$#9>9{)b zoXCSS!rh|PRek!pKQ^{XJ5T)ac#F$gXpbxlnLL|mRVKjGAU4|Usufc1o0hN1*+nba zSDfSmX>WS&N!4h`NrBH?eK*g#^ytcc{qUQQ((a4)E)!MgtUiUao|?oU)g=AXnjBM_ zpDuUd{ck>d$6E>X^Zoi4fxImKGDqw`ngxcI+*hl}M4iMx7pSJP0|`y11ioOIEmLcj zv|rChM?|Jat{Q|njX9jQv+Mu*O!v)O8QE>At`~o3#I9#b%J0a^V1?fX=Lp&<<^n zAV|tPPG{Le8WOfs#d$`omK#A++_>tQ)~l_OT2Bi;u!P6;za4RutDK)(9mPLnCzGN& zK(~eLoh15Int_K=Rk}pA>(!)%4dbi(E0db7U7zzx=G$oM&!6epLu+mBMEQgrouvxN zf*)AXi?B31x3+&4<^gu53Xz#c)@zzQBuWuZd({4G7AZMfL!fgA^al-@6wg=2#U(9R z<^J{8Y&}rVB52w-4i_5dJFc;{UpOtK99<5{N>eu=iM4Wdg_lTD3aEv-M^6G>cSLpU z*9_r8qAO05bBFXf(cm%U_udiF-mnUl{hn0?X=M{P+;3@x==p@Hg88f`_l~t^d;sz| zg8zmz+0M0{r7z5Qka3f){}?bzL2MmEvr=N#i_RKHYwAL9TsJ-k=^6KC?sXTc`S$mV zru}wy5uO2sjh&Yt1qXC1puV@Vg946iV=_5QR~0Va?Z5MODCBmEZ7D9vI`42E`AA76 z?bok8U%r&kL_dAtZ1K6Bk~d)WYH#{Q_t*Tm`(OTr28LeA<27<9R*Fo0Lq=+FaI4}FAOQRFk%>Ux&^38WvztWkskd0HT_8j@0!k`1;Yw+5zz1kfh7 z$Cz2KeV1!yu}S-A`!Qv{TGp@KT2CPf8hOIoZ*WhN9mupdW&jV}wc%O!=;G&68+5bZ zIjarOu~{TTcV+S^lYe=8##=PseL7hR;xMw^ELXj;KtVXQ_h!>3(vnA6NeiuoPQqZ? zHzw~sTDw{Ykz)HM!qbUG-Wz1D#JKO=xYqGVeV@2Hy@BWIvHKpV_e_QK~!`~X|Z+pVTG&2zl}7 z|L!kcyz6rA(X24E8jvWJxfj0)R{d-Yd0zd~0R+q-I?%f)13vfU{=;Wq=S!5zsav1F zcj2YZTC;?=NfQC5u13N2pEG4-vkyP=Jx>siEx8Xdgt-`r^-JOdiMd(`_irB6Y>1Hg zhzJxp4_CdWh3DVvtdaji`k{?P6C>*HJ&2q)$2cjA>-+rh^v>_Ndp9}v4xekxf*U1I z<1RW$-3JJk$|3e#l$kHO_sm*Obv=1yH`)JZH%mZrClDll->{%-s$onH4bq}atVZi|F}oG#7(DQ;MPT&o-_};X%&AH zBrqUyzB>;2skKCEhI@M*UBWj)=C;@W-N?v{W}K!*$vYLu9_GG(b!gK4WKfFjqb?1n zgz0S~_x9JiZTu=Sti1KN+Zzt^jZ5W(Pc|)qrE%Ys@{OrVlB?{gUi{vnwFuXX+Cuj; z?H7zzeGoE@`?_)^0weOjxsa&`F8)^Beu;UuFyP7w)k{T8y4Ri4G((ADrLBnDZ$Jc+3ARw3ga$AC%o+Z4P`{j*Sc+xxVv)w$1PoYx3;DFLXpfb zY{FZ(2FRHRxJ7;&S^|+42-7cP!{_Y~sarlSO!mj9&P&WsUX|gL!+Ta;0AI3VhJBCY zW}Xd1Wkgm-UG4vQpv~b4_{>%!*NsxA>Ru_22=j8s@lrYtZ$u%gB+<`KyrFw9H-u)% z37_%?eQ^0~#FGEJFokKqFI{Y+;^U|!ofVJBps6`&13Lium>9Sz>MBjQKg_zmOp^`Q z6?&^{7MC}Khb>E;Xf`t4b2R@Se!TF}`o2%#pq4n zF$?LUcQ(D|my5){pL{wIFje_)qwc=}=^lsNU-_+&lGvSFYgSHaf83EUp}Cv+d(Z!z zle&zmvj3^7B5dA%t3zufM(Am{U00Xa^$L-06HfPubL;Rq!x?@|deGs;)p`=c37`J> zu9lpy&P#`TxF}#@N2AZX$gA^f4}6G7x!|}*Wp4RW7xG8g|Lz%mR&LoUTAEz^X71Bp zj@Fw;Y_9W7Y5LEcA{8N`CvqDI+6%NijZbSHZe2bGxZ(2G`MCSk9EH5^*Uirvo>#b! zJ`Z<+7Xt{^hH1*lq93%+DX>T@XhcAw|962ZQ?(foEj6gr^wl5Jd(XXC5PpV$xv2Wq z=hw64g!Txo0!fCD7D4iP-^Go7GQ0l%#5*S|;c~J;a^PlVTvGdaH-WKmmi9dM)C$SQ z{T~#xEpixUs-)ZQl&)5nlK6&-s)1Wt$Gycqa^#(sFJ)yGSf@9gM*cSIcJndM{p2dX zU#T2;8$~{})OtU8?_q`?E=GK55ZHq=DT&0A2l(A8M?j2jij@+!| zt{6ME`Q0CU(gH>5&cj7rol}NJM}MDHzgJZB=8xi&Y3f3G3f3zp-+24~;PSb(?;8G` zi>(Oj{_ELb#Em~$ieiDU6Q9Sz73+A2?jHM{uP$|KRBPlLAMXDjYrD6^OkG_b&*E?1 zj~Cp3J;y&!^K_9{-YR?&F0=i?cR9E2eA0c9GpZf7t8j5&YgZ_=efzRBg9oK+-OUlW zmbX)Q?;}EdFQ?n5_b@{Ss&i-YH|{qnLiCi>@GLJpMZbL!&Oa>NH(sANhl`U&Lh`Gi zmr&wm$@^-KaDB-UKb>o2MR5J^V{ZJx z&;5u`IDOm5Vh>`As-qR3@~HjTwx#=xBjJ_jOZOW(HXO{CTD4#blHsKJZ;-MFq0Wqc z&Sj7nXvZqMGGcG@St+w@uP6^{E^p42l0UR^_)+4$#f zh7s;fVf&T>?)>r{>&)oSe|+CG6t~*u{b{uf5N3b;HYXDua*lUa?EZFO6A1%a{Y>eo ztRq#={$q3PhyKS;pUzm{d_8U4-#0WG?(r&hR{G}Q>3O(b46&lZ_Q~B&SkK#uo{-Zf zSZU^q&yVeg9XHQu-_(t{-hO&`OUuAO)J3P~aCfs(x%k|FQXJFq_CFznoQlmAN8~$Z zQV*z97+F;1;3Y3KA2~HkmC-@S|JAWY_{dGR5ZzcsfLNaosu9# zra8Epp)54%@*&~bu|0p4&N?nbEYtIUH>wGt`9hVlw+3vY%v3%*?vQS6`m8qL?XR!6 z6R_zufA#yB{Ee&l0v=nTzj${wGqoVu=JX%m*W`ZVqMZmAG;~h9@#mC>JO*8)*86E6 zM`||~@>Z8}lVIOv|Nalxht{i}`!`Yo^5_^~q#mlekJkpm7ff@bYO+Asm|UcYR|#L5g5W=#OWLA^A11x$2>EiH~gH4*!j0r^rQBr zyOeI_X1|ZCZ&<~h`o>2;?&1GAB8GT-K^ydi&G+7)_DFGxJhXy%0kQvQYkn@DBJyN| zx@DwwGz{(fa*0a?QIxU!VN__p6&edghsT zs3q2f2I!TW>=wV#bD%0T^R@U!HXhp^nLnWnp)D8Z;c1LmMO7w@2-ANgR`1^D#zP zWxt>f+4!p=D`9@0Q1lll-Z53JvB30Fk9V&zjMSqyW)5#!96eZgsY)#Z;r0RfBfGAJ zOQ;h;v~z9IisRH%?C%%CGFqpQHXc(L>2r%8=+oOjQVVboWUuhqy7CL&y?iomWcP^f z7fO*x_U6S`(&U#*!O+^8U-Cw#Rr*Ed_0U35WF*7#5Knc1f2km`xgEoKh)>Tn4PiR% zjuCuDg9hMH7h_)F`yS$}YDmtN-Ci&F1;~ymZ=sPfq4}w?rAp?sO|KRwK_GOhTxAXO z@pmVBxg(_Y(~c&Z7+)oN9I`1hd=MXgoywi7-iL77y;OgNm{a7zk>)v?igTDxTMqF} zr`SIcQPbs7(?L;Zx*T^cj@cu=v_}LYpM(nb{`~1WW9B@oT2Sdmk=CF;jA)qsU`wgmi#!V)Bt6Xfn$WGBGTrBeZa4zA#j-zCB@V+Z0EM$L82FO>0DDB9&pm?HVm;*bo29mcoPaO_aQ>ra7^ z8Ukqe?D5oK2J1LVER40Z7qF)<5(;o^jJ4J^?wIo$Zc!_)h`rEt^X?Lors%F5IVb3@ z)RwQu#7BeB(N_ZdX=KUX=m%&KL}9k1P{lo#d%Z>!rv5;bDOt^Vi?U!I{m$f?RlFce zDAbqHp6@XeC$G?5zTbwO@z#^UmDi~eyo2zWUP03V$8;&={U@T+Zs8b}{$CMG@n zHy6To0^Kwq%QYp%Dy(N1E$$+MsyICt?Yx8DhVu@ZoW>_R=UGe46%F{j!>by9#QT+Y z)oW-t;TQ|^#OI5}k`O(&cP~zcK%}ix{bgh-D^{E!we>!-(vl6)P98OZ)rM3rXzD6z z@)o+X4+_}}%0-Pk%~2Y=G2)};2lzU_s439kJ1aDd97%;eu_uE(Mq1kAmkR=?oH4w+ zRG4z06KKtNoO)eCnrN3FfUesfm4^{PD0rXJ@#4gZg(vBG@6ltrDmu`p1fhSJ5*uvc z$oM*sc_J(Js{nNdu(&Am8gC34Vn`ne4O4PCc0hu!*qq$5mAO=x4S{IAVoC+o#7;2>%(5dnTp^g%&EMV+y^ z%8r6J9z&_5?R-~92{8Z<7k>wo>G|t~j+vZ(bbZR!iN9Ux zVe!ALBTyGy4&l?Uu-E8!!CQ?bFlfVuY42$M#roql1t&aP$^I_}2k~u`vQSOU+{@XI~f!Ws2&lu&rYzO#=hiGb^0FTU_A5@ zDCkG-nwrL$yu()+MrynG9O$q(%ItXR5wN)O9<9*{uQr1U2FuOy2Py zj=B|j%^dac|Nm$3ZF!j~Ivq4r_P+N3UQXCYmrjQB`9dmw`EqbxX2{Pi11H}l5Oi)( z=W~Q~oF7U^kYC3&a%2Om+Us(hW&sC=PhUFPG~pEpjqR2dUNy5;+AMYhKZ|s?&LX1w zT+9oEDvMcoMaSGXD{{=T{%+K3Nf9y4AUPOap}eXf;qA-_V`|i$&`*luk4T>7bA%A4 zm{tN5%}ysB3|WE-W*JKn3ZFCWQpcTeSJtWKe-slg9ml8pD%CY0wTX77faO`kezPLP6L z8?uOEg48c>GC^w2v7n=Y6fLycLUnNpAMF(w#lKWh5`C5cXYA;mDXQT0p=GM7GiWEh zf#mc0I%$Uhq~khM=(Aj?N~|kC>rLL5+j63yWz4&I;8IJ(Fk_jXs-u?aiI(wEc%$AF zTl)5CbKkvmGISn!kP-T%)zngWgT2W(-?DywORAs*FYUY?do)|JqQgS`XOYqwjBH@} z$?{zRTs;M`;-nqFj0(uMjQ9VoSN*^B)~hIeC{CBU4MhZZ)BBM`0EH^_QC6CzCiM=* zVnW8go$FF-9)N|@F0!p&&V3{VI^$i=T;&(++XX2jk3 z@++uPfSv8hyECR-k2uCR5agTpvH>Y!=686s(k$PuU_eU}@pVfBJ49pvqkyY0rr$6=bBcW$yX5I<9tqNSXN{alu#rL|F%@V6tTW;3AYeEuLOHL z#I=tpj+C&w9V;}Pbxo<2(0R<4tZ$HL+0Cdp?OnbVU$f<^;Dd@PuhQvD2l-{5#_T{S zvRLl!+3XH%+cE~BqErd>$EhdMwNpvlrNQ-oUltWnR=Y8-U!-#HyRP}sq&{BBQ zE{vCQWg2h_laRSb6iaGQffsuReAkmUM}nHl>teat=(@qOp+LWrsteS#x~mABXY*Tg zHg7uBb#eF}ofWdP_@biZ{3%ORy?wK^pk8~BCmeSqbHl^@~SLnKqa7Y>~56_`9C1H67pMd3SAC)dle8L5AmzW z)0Q#qBaDcpCSwRh{IwO*c$!4gc*QFf-8pS_Xwxn9j(;RDYORzMmPw2dLfgH|O#Gr5 zdy?q<$S~-#j+t8Xe7wmxoOaJbdy__Z;dMTPn4c-iA48tWEw=&q=eunYE>3a|E0wOX zh2DoNlk9X_+!AOyLqpr6u3pqM703FMr7f>4B*I5_4I7@{S8l_|ZY@rK9)H<~YTxkF zB!c&vQgr=OZO3s$G|1to$*lA$gFN=D8p^#(&~ z?{EB75_0~FRNA1g&bv=yh}&1?<kE+vd?FRmy_60z#tuJ*i(~-)pM2!{oIIeP2{*`b&73OCtkiOvs{tFovk7zwtZ*_$0D6E&l}zAv^a zLLjo~%ggS$xd$`%W5b-cjbA4g##gGe^B}NHOlZI>X8E8O=EZkBo!7~!ayS+e@4TbV zN3g2K!mFf@yd(8@D>^Wv$TLq{K-LKO9`g#XDxj;vhLJk&xlI?%KCw7Sl-2p=$;Oc$ zFZgF-5O2QO*#i@ESpyn+Q|2|pCt!4~mOUhAAJKg%LePoGjiI7Mqb5j=Q;DofY$(?aEfk3{lkh>inN{S^AxFBydh|RshtrBnl&KQ^dIa`-RLF$ zuCRKAfoPrmy*BvZn)A5AuU`v0?}ISDj=P0^bcc%zBL}{>@>7Dn94dIScFl!4VM5(i zL6vG9-H3v=oOMHGO~vavEyVduj5x2HVn1fvxPgan`lutcq+|AAR@U$Hy`|@fk!mzg z0v*k}h3@4$ubKCTBF>fH`fvm}Okoxn8l4H+S3a{{Hv12o!|2cCik)D zymaY)nC?_fgcBOfr3aWYRR6MqfK^%9$E5Q;XOz+)vwL-0o@4n(z6rsWEZ~DI_X148 z`wSC;TAhaAge|%c+B3~PJe#`G6vxZ#*nuECaNNkS(b}b2wg~+nEA-V!G*tTd%%0kf z6%V!-jHv`p$MJ6NUwkfJ^E*T0@spg2_E*f@tRvv`5f783*UVEje|0p^8&C@j?C zq$9)m3ke};9+&LwQrHSirIg0EHW|d@7}u%-B7!tlID(GIe=Cl|e8#?SkcR%D;*oa8 z#IKoY0yU*c@u+7YsZ?rRo2jgV4=9mN@*949+szYU}wdK?b)F>}!UHbh-N5fH?I z>asl-wX5FahPTJY7L6#iVZWBk5=6?W6%_{? zw||Wj9(PDdHHBHYuk8>@5B-8a1-+X9B^k+z!akK=>a7%wcD4O%z)7pZg7QF*k=tJ7 zAMtr3l2^aB9wFlx7y61AL+8th!xr_Si>-as zi{%9!B^#AbyMqvipO4pnI#>bjIR9Z}7gnGj&8t@6pSC8D#`$E@L4+LICNt&9wKKR` z)^>Ht$B_6h8-wt-fbIl7ccwB%9PIVLZd*tssj;4jMtdRH8Wr~^3>(f7u5S@2#3=@z z5v4{rIr7w}J@i0A9Lb5VGfYj{G0rRl1?^0Fl^%M2nTrgqz|cpL=)6zWCjHV`?&Xgz z+Dc!ar%6py|CQq5m1h)0eaLV{l7a>LF3Eha@w=z|EEBYU@7BGagAoVvT1YQ0j?BwV z{j^12ZJAyw^^S;Q3?>{HEDfh57Q9=hnoA2y0*7#zrJBQt;M^7N=d(xk7t^c! zEP{<5tF#k109BO+`DP|x``aXK$ekwQr5^|?x6{gd1mfK7-9eCB*@b?s1WQB1jXOnm z4uE@ymhqW6z>{8JqD|8;Wr@x+EMM}P05#H0Wko-VAuct)Eqin!j5wd4x3~*Ln(GRS z(#MsM@|?;Z@(nlXmuz{5^ra^1W=byoeFuj~*Mdd#7<4K-_b7%8#9J(Z1wTw&<+3 z2e}964K%!wFwbMOz?c_8^B7m6?@~E_#2wnwnINKwpR!}@Enn^llPyfCO!Ia5kVnRS z(aZt=?mOvNm4whz4i7WKcNzr7tb`2#RVQ`pbI{Gt(Zvi|8Xi* z&RXG|gp1;DR5Give(1V{ec5Q6?#>5!f&Cx$9qW16ZKPV&l!d$%klr`s8!V6u?KUTl=Gc^`G;inoZ~5(` z`@UQ*=`KW8jz^{X-oNBl@y7s!DeBeycDrn#UB}5BE${F_T!oK&erPKEvCqM+bn12M zg@|Vk-c5J|JYG($cw_I9Vi~pR?8+SHH867*#e4SH*KdfH{*Xld!%dWEXIbF~pJt=$%?dqxc&u zj4&RvP1xtIRQ*MWuQ0yIuj{v?9_`xFGKFNgZ)>gt$f25b`v5Y{gI2N`UE4+(9gd-NVR|Dhw9HwP9)eB24uC8 zPjs32?xJgDQ1-UlB!U@#t_wgr;AnduXokbEddXECr{X+9PVNG(Jls4m3O@Jdj)Li- zh#ISuaO{@OG-}-&@4=3YAFO45qB_|1dNuZ8hE1)o1i{(h7QrYdyL? z;g&(Bc@>P14xaVUm7i8zFMN7yi#uUzuCt6!2me}uTdQ<{{JKdb z=84kn65{i&_g%)k`KhqJc2#T>8JTD$Ca%&7w!VnKl=a#7;YblbXux5n9K1xpRaD1; z6mOS#U|LcAx|5>ZrNg%PPx`sNLMEA;7H4C{+2!t6g{LirjcjFwjZ}a6X+fyU#@(D? zXCf>1(f!jIF+>y!7dFBa!;jol~a zud@{1F9B)`4sijcG;6eOE+1KWiv1?15LIctE5K2JC^TYG!Rj)whTj(PZJ_PfTM?ms zM_XcIJQ)!qdId`m!HTWGzcI~F=~s!B_gMC|z%t9126<>9zVx&=xQ>-Wlm{iAtl7f94`Kukgggt`bD7}if zfa@}}8MBqEnP%p(W3N)SF)k(h$1F{P(3cGlUYfAyb`p|XD#~}8D)cH9SkR!~Po405 za_#ywyHAFoawm<+h;T3oQM~x6O#t>o>CV};PngG^CqrjGJ^CcrltEdbqFON!9q@PC z1*4GweATuUhJlJ*A!)adb_d+T=bdncLzRiXSxu=FPaCd&PP}ansG!&?!eGMlc{>YP z(PEvMucL;5d_5QDDwFY^%u(;6v2x2pT#w3mL{tZPw7K2vxe;)}rLCk0Ez>t5MQd+Q ziJof5WwOQziC;75gO5i@+dl!P14oM;T|=}79J3}ezQNmR6`-DFu-P8JuEGS|+H}ni z9(qb2ssDoiN8lAN=1&GxSvq!jo7Yb+O`>!DKSZLoCmfO?`1>(Cu+NE7+i@1Y8Leax z5`6~|L|mel_c5a1EBiTL@tU{23o$HtD0ihd>ZLOenHym>LZ+LylmW6891!0 zw9lfl1#_gB|F;V(K{U0e$txx*GToQCN9jOm3M&*eiMgD@xU#;EzFx%Bd3&ESAw*B~ zFSK!GAh4y5jFD2W@}o1}SlQ+yR}1`*qIwpGMZ5|KX$}r1FT2hJl$DcsmDn1dwNj=PR_4`^GN6mQV)G~ zRj9xv1izk3%P~{%-hl_^^1BPWm5T8@GJo^AxRMJ%&yqAojBZ|Fnuu>2$&%cBzlBRS zA>7(6(5UZxdswUHeYMhhC@{dQ>YmIx;jde344D|&adP_ES;mLO{>8u+tNsK0TjjkA zMiFP%7K1!8~N*xrXLdKV$3k!<8UME@V*du}s?R)v~J< zTil;1)C&%xG4IT}^-Wu;Y28nYvbBfUKl*`*^h3yD3Mc4X)qysy2vqJ5083Et`!D8) zxZPkWd{_eXJa@yA@(%r}iLwvYk}^E0$tK8r9jLgaqYTex5&-SDhW z*O4+rJ9BZB2FIuVD5Z*0M@6O>LZ!J#oiP9;e1?&IZ7Rqz#>q2V@(m6vaJl(bwWflr z7_>rM#ISWlcWG@*S_?POujp-9wjjm^w6U<_h=?*)-ur6LwwFgnAh)dsudc+RKInDN zR3-VB=Mft%ubilI392MbIJBIL=|yzqe6KT4O$Qic55IOGmi6!jtyZnUp4bUoJtb^C z;&c%?LG!qWHU?I1CU9iKFDm=)3XAP*VJSpseBy?Ek+OE*!Fx?Qeo|t-{6Mo;{bq9@ zafp8mD}#&{f-w5o()jD4k}qHgh3uaX^PIN?x5U_jI__#RjyHhW?t$g;v^8~Z%01%4 zk%;ahIm zitz^}c#6n2aCo_s8C9yksQYvGi8{HAvg793L-GvqHp>P@)PG2(Q^+Nae?C;-ay-bY z(3z4X<%=^B_&SqVtvOy#Bt4#0nA$#>JWeUbkO80zP!~UVx%e+u*=c|P4}&- zaq!SG?t$QM5N;-5!?Hj^d|%P`X_vQUiavT%Zo9>uAT>-)X5k==>_*Ukz;cm&i5)S? z1-Y^2gXXnI(gc4&5G6ZDvF6COSYF4&yf~o2EMyR&v##p*d|aRJNn$OBGkb3eoT<<(!=_d!FZxa zF0*>MU<)2>4~#X$)WKfGPT1AdSSprV&3tkAawl(X&60)_WxPT$J*S6Gnc6xTeUb9V zZ2@%J0d~GnZVhQ50DLaiK~`y0TScR%O*JG*ha}L}E`cl}Z)#0{Kk=FUx>GXX2PzRz`P z-WF2`>}8RO#g`=>X{x$gSBDTdc6$Dts{}f?f-YWQQv!eN6G9Z+vx3|r&}YbxhFO42sWJuxf>j{dQ;?Khk~CQqDLsq?qyjh2o47S_A7!JV9#Lo^NP$T zF3K9NVKf*a`{O`AX0`-$VHI4cKDX1tO$kjphp=ACoY6vdOk~H#u!%5A z;k-Do%1 zP7$I4-3g6x@c_Ti< zl0kAFlc-kAA{5`95nwcw|ANEWe0PUWz}+3e0nb{m&++pF8o4s25EY`V6y8#pyPx;K z!G@77fi@Q4jRW{C7ChIq_!6=xo&j$Dju5A_O7Dm{PG*qjWyORc>B%Slx)YPSn{GQq z@$OadczuRjK8=S}QguC2e6Y1U=!|BnK_@IAy^zg|SzHxLDTEEcI10envAD%}?8Mrm zgY+&WK95bIe$T)B(tz^}Q@gw00Q#b{m_I0^MLHh(FL_}v+#2R<`GZL6uKtMpuqkIp zK9f5G!$fBc%iQ@yR7_ya$Uj5zBN+j(WnF;g4J1|DrH6lOiseO6WK%}xe<4wwM5+>9 zTL8OiHf8J+^r{zw#3gF}TrK}DaxC390V@13lsGps#&YpzxT|LD2wYVgo~y+x(_4^Zt;7^3 zY-H!gAoAB4ZbLh9WQJAr19PX1ScIKOZYR!@QAWKtswnV}Qzx)IJ4V3RXQF%w%BXmn z)j%>TtKLgTZM$rfI9E%xcElPwhE3Q^A>R(e3PVP6P*gR#+?|R%40FZ?cJ`I1M@BJ& zU)kILnCJP9&^yQ|{9&x`hqQ3d5xQ+g+Cu5h(IFgjMpZOikFE!Bb1@Kin_(Eod^}lo zZs?_5fFQNX6tt_&T6$|-&tZRmAVZW&m$>9LFbn%kG zw6yS3BlN`9w1r%xqwg#G8gJ&zm${jk1SIuiK$rU9B7n>$4#J`*kly>h6*_#H;Re<- zo2)&syy`U8#$PNpu{wX6^+4ev%CT*R`vjiNuyzfN(OZdBEqWrrtY~yTa%X?Um8o{( z*hixNC2XKQVfmF2PGiwr9x7d7Y{5S4=t>c3+I>pg|UN_B}Z%w;IMNtQZLMQe{ zFpF9{*qH9NfUc$=7=_E&$b*C;9au`o4A-QdX|3&!t+mHa6uXaAV@K#Sxdxn&^&g3f zaFV|DOzspiz9=#EO7?er&R7DAimj~gcpqO`g->FsKe5~G_kDQct^wzBJJFHE+WfY& z3yb8Wk#J`sBgna1YI*-uDT8Q!)C`ST|Y8q0)IR$U?AF#rR;aEn% ze52a>HewT!(@N5|bclfW^N`F$mU^Il`G8=CkX>~A1C}YVnz=h@rpN;u30b&X3_`T% ziY6Syt9eDgAfp79x)P_bkR6z6ukak@eLHkQ53gtso?{;TSd`+^9!>V`lUB8*1scc;!u5p26Z33$msiMcN(h*#VLVLbgBSU z_@MghGLdz#inOAC=>EvF5y1qbbj@e1wxh-GYmj3m6MdN4LN>*oXbQBjpo-xg zs+S9oe~g*|{H|*!S{cwqrdhE{A-00Y&r$r#BXm^*`Ux4?fIq&*Ds!gWiRux58*n_} zENa=5wTrKNADh^Q_TFzazovC#0g8WdguZua7$m2Wq&=%}7^~2nw%|ra0kc^Dm8eK! zRRIeB+BnTJf}PqkQ~}G2QI3h4)jy3DFJpP{+ll2@3TLskRnsi(K>L}L zv}==|xWcV_F%xF>EyCR>`h4rid(aP>oVOr+YFZP(4HmOTr4_g3l*|~YtSP9~AcLi+ zjdD7;q$bKRvdy9r*Ca6a@A4mp^wt<|En6tv`Cqv8h8Yg@6w{TSl+ep1} zibk zJ8=4=g}|d5Kp-AngaohxMJqhkFgIW=KYWuJW>L_KDsnY>NI{=yAMAv;$JcZ@WBl+fx0DgVjcUZ}x5jwVzic;6V zl2&aMHnHB{eumh%4}d2D9KIiT6Bfl0NakxL4Hthtdg8b6KDV3qfpqhBdVp{&4l^Nw zsV!hr%9|ABMn4hL(^xY|&hRFkW_N-jY(^`TuydM~4eT-np5aF5%x;8xQ zgomL7swE!FTWvrG*}4`u|66f+_l#*)NBe^a`1%(M)snVw1zvQm-|XDo+CBV*DE|m$ zw4;AW-Z5A>wtedqi=U0sJ%^19=NfQcqne5MnrRjmL=|9)Egl<5hw=3K>(_XDcpqS6 zbf{1I*S5()n6kRGwFI<6K{()T=?;XAhdoAiJET~?hFFb^m7!!`jV2<>@439WIA;vi zW-dNIb}y08rqHtJl;+H$i6S{$EH5XGb;E%3A|tIjRM>!12gF+lPq>^p zV9=?oc5(S{v5VXgZ;SPPl@@MK@Xj>|;fk*Nsm&gvQ?mpk)|T-=_p5h1sz6qJN=5NO zBJG(y{)NN4J{65V7#*+QYs_s!;`7;*&2FhXtBdDfkmzL8k0ul+14vJgE#G^+Ydw%CHl?F+|I81%O}5>qxi1#8$C>Gx^yv_{)cIemydl1g(d4!DQ&%yO zct${zF1s@u1?s4tpXSx=Z+Y(Z2^+gd^6NNzRmU#cV>lma4YGtDPjfy7Em8Y4m{Trj-g`qj1A&+&l8hZompN?gEVxl>}TL<3HFSd zx-$cY1{^bj5rJh3kTCj}wX6O5x!%K}6V?Qy6xK}o_@hWodLpQ-C5`(*3-vaiSPk#- z_tPJ=zrNLrgf!bo{MiT}f+BWe!fHP&9tgXwQD6NtQSm+tTBY}+w@rA%*BvP#4w)!N z+pvk2Z2xyuMnG4#-emPLY%RY2!L~8HN$kQiWO{2r*N3(N1q04dJF!SN%a|8Tz=Co~ zTYOdz&-CC~AJTi6;?=bHtd@**5PX|WMg^rr0B0BjZgds<<1YUXdbYoP`N*(ed|LRK z5xQd#ymb@lJxK9--xfRhbRDANzOPFurXWvNn9Fc)ST7Q+OfP{<*={^}lzpfg{Ovy9 z6Ca^%#F+9eknW5Vg!@O_O$Mn3Ub|eJARZ_r>?w%AuNs|+FCJ5W5-!$v-r~nyBO;4f zRT!37(gc)vs6OnYB1{|}R?kG?+XO4FyesvA{|exw=Z@tON}6u{>W^0nsY7oY9kA*i z+b0?&!=@{mPrR|(->K(;{mpLjoB=0@kkaZ##iRQti7yMPPh)w<2w&>oEr15gXMLFb z1LzSGIS(V)5W+*jj2T&chF9iP!yq8RczSMWL{_fyz<|t2Z3-8S;n`WJFQg+C88h7S zsR;f*9KOOYXXZ?L3QL{!>m?sE@hpN#EpXs&_&z_mi5PCX^fu_ILCptLKg_V+qC%FR zC9pc!Jwo@#=<((gBf2%?ctW@{VQg@ow>MI_GYe%znP#yqeikb_;IXx>*r=*stfN^# za#PvCUzy1)&wz@pFx*iPx(}`Nhw&%i=oUmPOtHLHBr}0!3|~?!LCVjH(<%e+N(nq% z-Uf*iNBHU}&TG>8VQx6VF=wigwBC$sLI^^gsoyZ2tPC8~zjEs?1g&kKsraxrs_mFK zM_rI5z!+k`cFZl>$lM*;Fl&m5B-dJ36E#(wR9*h0d3CA#D8i-^4QP ze6zs_+hQbiq~>eO$UFeJ24gt)`+B|*hIf)Vqd0(iVIMkiDuRi}65P|W; z{adeN8Vf%<&x;Es5dB}EbrdOuZ1%N}HYmeJoQCVIV*A*O_M7_|s!=^N@$L^L1lk$bEX z3(hzLzKN|J!ymwE4$*CZKMh+ME|8Jlg$A6&szTf8O^>Eoy9m{2`asG=ZxQ@E7Pg$8 z=G;tFFEZd%W{1!20xA4tY<_Hn;zh?^YfmgXHj#yie2Z2LC9v`c3zq;C1t{4m)_dYY zBQhOdA6sh|HZcOD*f0Wu7WVYmCAYL=#hn8LnI~hEla5;U=Hi}^#ydBbDY@=g#PGTL zsNvdfqo-73Nan4=1#$P;%9iXUsTjM4MVl>A5F2T{+uHkWQHK5Jy- zQE3>cS9c(%&Hn#!^&Rk3fB*lN8yZGM$Sz!0Hf3d1O1Kd!JDZS^k?oR?BuTlVTSl4L zqmYq%mFSwKkbN_=xiT)-egDtx`}=&-|MBqX(R_AevRTmLy(x2%M4RFz zL*o!qf6|8c2!)#!0&?G=K&bmAvi5qaSZtKUO=Z`RA=H6|i5|e*#m^8LmbO#AjhcE9 zW^jVPR6xM`QmjVbF#M7MbR3UUC)5Gvsu95zh~)#Vy@USQmtDUR{!F6~crqBueHwW) zo=>>@Zkf-FCQp#TkQ50rbGioa@0fU(pb|myMM4~Bfn`0q$u@q zr91+;=1>y@^hG^iaf0d8uP7C@esyw)?-pFVxdpnPq(l+&|FRu2Yya!k+C)lTJ()$9 zJWgCPAfF?RZz-+hirCESoT+>?5uo1ezhtlXd0U@?yf~sTG0!V7UK{XoeLQ8$^>Rps zK50#5XBqvqCp{FC!I-KEc9aVHMO2=O)M0$0!EV)yKA*c~eG4_g;a95X9Fi5RW-3{j zzZ)K9{rui$;kG77X&HFOs%%)?ME~L`ekU+kS~}djNaFFP`r8!JjwnXa_aX>WBK_$i zr!kJD4bAh>(2q|I$MXcKg4^?I=?C{1mdNOnZ+4E8%ymbeePuhdJP~XnV7Q4Rw~N?t zaXoNY&e3hyk`sUw+zhY(%6hRirk1{pUUd~;^14m}mzhbhALBfXJNY03Bg#alOMb9n zDL7ucVPdQyqqG8Eplk&%-YO0meMG7mlL+Uyl956>+S*dNxRaek`FK@xzrh{N&Dp1@YV~p1A)10(N#{QWOzMG zmt;+n8v?g4@EhI8T^Cr_`pe7XOHp3*0$~x=KV~LXa`voTXjKyMMr1ICzGI8#0mTZ5 zz2J9-Qq^Y)8tC3Gz)B%;CrhcTHf%%T5q;1EDfL?Sy%}wlA{}P98REX}0qw>)$y?w0 zwj)9!>Uih$C+A$aliyFZE-582*ERN@fq^fBYik*`326SGhd(@X>&GQimSnmn7p3O( zorWzN!qMYF*TWuG8>cIHnvqi0o4!Vh2@u!NqRTQXzK?iweEE`?lFlh z)xgi8tq9rY#IL9`1a{M1ha6(z!zxKQdf`24y*1eUw{bERudHGggLV?&5+&i|`EPdLO!uMj)F-czD$-ecV;(-!RRFj>&WN50)Vfcng4A2x7JwTdi5-%~xS1oA zEE5SwK_Om!1e3}%sB|jT>If>Fvl=ro4kPc0jzz6^WW8p-wpR>3Ep#~u&9@y;%!3bYcP^F%{+@l!d37;P|R-5 zSWkjhKNwy0@^bLAK+QH#M7atStp-nd6SlLlN!WT@M3_c?;d?f5e)`F%O7^B-1By4_ zcz#kD-IJ;-&Jz011yzips}VwwPR$mfqk%E>Y!hr$nSLI*-7)dWg{1ptf?+;&RX8%_ z_hq3g;dz(Jv}J@0mhiZ1f*nxDL}glsZsY0i%Ns2*M-8V^1zCnX5IU-u@un}u534{4 zV|tsD7~u>;OSK3_%%>C7%C(q%bO8l+Gj%!M3$;2#k(Q2(eJZW|g{D_FH<;6kIC}R3 zOm&iM6BB4%-ca?FhxXljh!=iYWtiu)N6{(U%AzALrO4Ue=Ap@u+1^%A^^Sp5m5t%ocs_FLo8J$uU5pgLQ6)uwVW=8mA zH#Ssxxr}ot8&rp9`%RM%7DsZ^*F<<_;jXzi^GfT36dUCHMH=OerfxHg5B9mI3C z!~8BNV!9ZvU#PeJeiuc(N|<=3p(^~GFb%_ zsL{3c^TAC7#IU@7EJ~FrjUccb0Ln1_@1{9nA`2`D+Y?lHqmGNC0+|Ib5ornTBmj7p z&fjWyTvf2D;RKL~T(fQ)>@`IfhvK5s{9?ES*H>`HVo)2gs?s$V$zjIEzHWG)4A@$rb=qqpPryC?kl(pK4n zP#X5G+v9P3mPIl_SVIzUxekqeWI>T{WMx$&KnY7?YrA;*0>|FLB*H_sHXu`SK#llt z1m0|uS6TRAk8o}I+%F7Ze8bGLA74%2J}sm{RJ*`|2j`Iu`Y)t{A{~`NRlR0hC*nK~ zdksxBuQwl~Dd7;YlxbUc<~C|v{8v%im#H>y@qM$nIp4Z?62;?lAZyCI=Q--P{t1+N z#gd_!x+nc&{b>G|Q$6od>C1LU$qN$>fK9~!EI@xI4HPu}m)%iUj8xl%DNu*~6)27L zKsNm>_e>{jXey|x4jwqfo`K{s9-k%xYd|$SQ_-KQe8z2_U5`0O5b?JWc|c{J#B@6; zs7wtDRbzZcJrI+l!}1tUvC23U4MmAX^--M>iN}gK=+CXCetdrY4y0^zdH)4WOq$}G|grQ{^n`YOvjq&&B4CM#<3&eQL^m_!%i zwd)u&SeGXqC|v^24TJFzXJn=R6(; z9Vr0kL^rWyadeov0BU&n9ZHMC34CYT8b)rrRB>)7tgNZRfQG?VJoGq?PU5EjeC#2! z!kPNUd0B7-Bl|!bGt()SSziVFx5jK{5?#1t!0a|B0MJMZk4)CcN3E~>F$|+ z#DdkG>Fx@l)IS?|s!s^3_FHi5-oOrd)h#7=iHR!YADV{2bhAiId4g3}NbCQCz)akx zL4VwzI^^8acH03~#QyQMQzj9eWY>>oRAx=RQ8Ydo!f(4@`D{I;_@fHIz|7p~YTTMs z=~MkI)%C7+GN^z5hqKV}5BBKQHziLhdRtwq)o`!1jxPv8Q;$L2xGWL=T#uYVPb?j+ zW}F^X(5O%uAi=!yE=Z`T{tpQT3|EBCPbeTOwAVoy_JSG`ja=>Pq05b>gNa3ajrYIL zO)vYw+g6K-TY{#YEum|JBCT5z+5}vQXjSq~3U@Na^d22uAu|(W(UWP<%FR*u7C$5a zNWTy?B224YLQN9}*e}7K_+UiF_bka5#4%IGRKdqX2CWMKqh+$e(&scNsi)fm`!1yC zaM0<^Dci(AHjnyLgTp!0qeKyJbtB_Koz#WHI%UI>gBe%CyEcB%im}Y5OkXO*t9c73 zn;J~_gU>}mW`K{PBwevJNlwe&8K0B+zXE!!CWsx)=blJx9=&P(OKSu(G@EmgB4dA6dCx0!Lg4+=im5e z-n?cwNA-SC4BrC=!to)oH&z~!mt{(&TVxUtx(ky`nzm@WDMbx9noQY_$DLtfj)NK$ zk1doAfzLD>1Vl#L9s?nwRn_bE+#I+AnA(FJN@L}MtCY`=hinOHuiCRk2n$s-1RMW_ zDWM>xi;2HJgGGvoF7F^sUb(hPzP2-P(n!0|2~tHC1vQXYC*7XCD0=4eC}8l2%eg z2)J9>?)Ts@)`a*9gr!f&HE;TXSA||gLEtwGmp>;6+{!LdG`oG;6%m{D#IHRYsFqWi z?Zj2xN>NN9-bf*z)5#}VdA1OHh4+^}t221qKvRT1N0q;1;%>EPXSdB-H9mhoY`21D z=9Y1PP^|N!n4y|w>=elX&tYO>GUR6x6E3KzWG72(T=n<3+0+NzsuHP=X_JoW^E)10 zakWkE4F|OQA!a$)i}ZAfQA=sfK8D`YR1dMro`}Fp%YpiyT_-*?dh#rw(r*$L%mFe5 zK#K9x_cZK7ZPmYXByA-RrKe;4PJ^<=4&dF|-~a9BtP~Vc=;wUy+#MFsCf~0F)R|>6 z0aQxwA;Ka)jPorYBD$+=`pkvaNX-G&zo52kN6ZJscFz(V`(m83JCacv9jJn6tlCfT z(amJlQ^FTTQ=jEufEpdN$8bUV^u|WETr+vhiLM_Sd(>!l>flP`1uVg(5&)<<8^=$3 zca0I5HYHOAE5<$?ca`xM3UEMIqw1Rj{{f0gt-wR7syNAGoLTnc%DBRexM9uX{Crkk zUh&f6#@Q2+QXeg@-(8*Nhk-(YC8w~PFPx+(eQbH9N(Ld5D%}=A0+m{!=|s9r3OYS7 z!TxdJuzR!}dGr`$98!F^bRX51HGD7LqDE@xv} zBpmz@LVHV4n6b_6jRM(-msPLkvJkEsRuxR|_m(3W6^y;Lqw2lpJ(U zV+=vT>YWI$RzZ4*=cy9St1Jbjc<1RxlQikVd7di#_A}vL^bI8N((}lSJdgTGVm-)?XpTt`uY<&qEDYkF$qL$FU4H%It{ShtxeGT4-4KbjC$1D z>XvTfpe*DXi`?pB|9Ib5d&Z?IG^~c=*+s&ABS91uvCMy#-H4W~n^U2OHy4w-xk4Q; zXkhx_rF$CIBD^{^=|`U!Z`CKXgW0GO10uaNiO*L-mF|qS$4AMibjEO|%@TNnN(MuN zLe4K&K`d~N#fg*n4T0qjawuUU?{{lrktuYV-gu>HRw95GfPM-qkg#fW^&Fc&z)x-V zGyni{-QPdGMeK{57F_P2p_7km$b+RgO6Va0e)gp!3fhSONj7ic#CQ=aB~-AfnY0#IU5;$gX>SSyrx8h}ZW&-n$w zVR)Z0>Wk<6@6CqKnW%JtAS0jSr_)(8c<1?>RAW^KM2Dl^ObMqGi4Md)CVDpQDy5Y~ zL~(Y~q7o*tq}Mqia5yBMo3V_re4}c$iMPG-m*BLCszGOqnVE8Do4-4GwC@gBjA`IpUzY-~Jb<|5)K&Wfp54L!cX_ij=p_*GH$cndt@Pz<&V)`4 zgMbaZ6$;)$5N~&*oNXIX1x{Ei0I7r3twdt%$@C(DFAx3Rok0;0y|JG;H5_e$}p?8$e zwy?~6%MUV0tBq`gA;j!%J^-MLA?i=Dk)C}arhtjvyW)bizn~)nrTiZTYQEv5aJ7=B zY$LAP-vf%~dXGd`p<M@}jCa8`d1o&2Pkey+q0mujv zJvOxnIad?_RKz*Z2(@S)Cwh-3yN=l zFfKU)U$yurI|J334Drd`c&i~(TemXw^MGYK*T=3@nXbHRz&8sUBPVCOw`{9?-&of` z)u&7>9|T5NP!2ON^067;i zeS}gd@(Sh1atXYiirzzQLKXZdjSQfraS9xLhGWit9EB|@Qz8AH)y4FQk zdaSkba8q0}P~nsU@Rr)L1$b-USVyHP9h(GJt)iH?`WavtjFaChBLMbMYvufVcYc1iW>E zH$rpy%Ok&2z=n>4js2CaPSsmYMcSw*8Avn^mE!T0XY!m}lqqg2%0VWu@$s*3c~l8w zy$A7+P41M-8S70LFm@SHsG&g11R+o&}feWaIu_GTO%Cuj-tcJHlECnD&b^Y#09xA{RvP3c4>bmu#pMYC( z_Ty;~B%cYb3cx9lrHPZy#w<$+jpr-Oneg%q#->QO>jt6H+5^6xbU^7>j|ns3c%cEy}W>!_U-iA<4GTWA1OT_14^A&Khw1q!6YEDL!~$e zu87f-m|86amro}eHpEOhxvhkEDR(4wi02#;WI5$i^T?Najwqpr*l;&%J-jThkbl6@ zM{b&;gBOnEDo1}XPS!_2Cv)D+3m=;}Zi$LO(Mp5Y*F_TU|*KB3)9fR#?_|>hft*t39fk-X! zO|@Gi&ivQt(Cr3Rt=VMU$Enzjvt5TW_+68s>3e+^T&?c=-1*yFx?d(5TM$%m3~%{2 zkFJ+`ztc@(f`oETE(wF_gS?{`gMf*AjZO5N#x2-AB`|#gDl39CL-!?B!` z)3i7Hd^)|D1b}V>ZwABejVjRyGfGEMU4A`p^P^S(Hnt|7V=lPQqiq7LsZBdI*%B0z zyRJ7=pYRV4b{^n@Fw|$?6x(<`w53Y)2PRbGF#RW$yaSG;AKQWK;a#ZNq#Zn{fgcP&tgp`~j_8CSbut&4*S&a@4fw*AIUF4N zCL3*4hXcp6nr%pl84k`f(!5^z_~bq4IR|5T7Y2J!3tq% zrk0!x8nIzWAAS43b!1*HZesE;sRGCn$~h-xF}2!=u0w*K$>ZR)6nf1h;{hPi+6b3O zU&vmVjV^*7Dnn%jmOt(+tH-0aqaU1i!#6h05pKnz%F3Gm_zs^{K zVxVOSNlA)R?IdTjX9L!+O)A^cOLRE=v_tjqh1!Lx%?)9}eM+OuY-r_~yS&72;>zKC zxw-W*qPpGbR9(|_+^>5+&~c+F%>zShL-3(}p#qzdE0Jwo2L*lV;BOCX9`RKB-(DrY4}EvG@NDc$G{-Ln`^`z7e4MDc@S!LCg=04fC!In-vrxLhFKm)f7Sz5;d9po`YXdCQ;lPKJ z=!KYlOLsox8At>15}&5T;lrAe@;U`=#brzJ zoU2Pg3qqKU$y7*qS&K073%m~p7~Q2I-$1H-$7$4#3N211yG4W0RR=q zWi0Bm=Kl8im8)r9jy?pG8xvM7!%f?G;cm}eb?iV2_ZDr-^*3QS!=`@?xrJyc}?pSu0 zZec;P+SZP1t+h|JzJ+B}&s7ph-qm#Z7P4N% zIr;z(Basw9Hl$Osibhed6DE!-@K?cqcuC%yvwV1wC1{;b;&F+`4F_$No zfmSLnAeMmoPEG1|>jY4UeLXgN)F>w$Ni3q64XiF$7I&5DltZPi^?TpCCX{9#0Qv3? z)weA)s)YuTr{f}?Z)~0j2CG#V^*@I4>?Bvm!mr@=Zr(3^M9`ERB-C|e-+oFkg^f2w z+}8o4C`v&!Nap-HuaLh(%U0Bsx5lrclYKRGIEpi@(~0p*jej3%Q57#i#V zWbSo&@<<}VNg-e2)5Pdx>XMfuDOtUJVms0XB`yVY&l!X!Kz3r@Yz8;2MKQQX#uh-g z+(CsaPgBqUw%vpNPL9cT==*V-tdeh@ds)OE)w9SF;BVcEP>(j(H0Vh&vgpHo~@c-y~Qy2reCCK-W zCKI}VIs_920z$rk@EZJpqMllA6WsvX1p08&hZNm>o1}tY2uUKy(4hhT%FF^Jn62+f z>a0jpV^piYDRvq>!U4OSg#89OD`{@nu5mhD!-cH}NPMOshzGix0b5^Jo)#*w{1o5@ z+FBwse-EObX)_vtZxIJuZ~Fu%$dd!`Xg%?;c9h#F_3nl=HiTe)9*YfPp+(MpQyW+#n#Xma;@&ugdFiB{y=2jJZWs?Y89q*BfUpjJ_wjV z;EyhVdn}aOdNckbuLsT}@**?D2MKvg;4YYq#gh5LaST5Z%@EEP*eorx7>4(Pm##!} zgS#g2C=K5fu8nYFK!hm}6nTscFi7j*B{*Ip!ZbIDailKz9#-uvpZb*8Jv*1Wm1(Eb zUHyxQtXI zMNLxj5f>N1*H`xR0hg}CrFUE!)LUleE35!kfQ@XZnE4jhTDFO9D4&upn}tPO1qcXd zLNC89Ib*(7SzON)^+d#4pEo&`edYRwAsyrchP;87h!uACe-}_0XVnl97*Bd05M(6i z=IGP$n_3BnmnJDPb@i{<;HAeO-k-_7xB&3)jH@tR{gdaz_5_|{aU9@-Ah29wyjZK{-#;I2nhwrrS!8V`v*Fz%QvenfSl0|bnD?gAm3+DU6^RHP zx|X(TsFc*wGU*qYLXXx){Ro1+l>pAEdJ$kDDZK7j2Ni8|yCCH&Je++KZoj_^j!$zo z4tYd)-gcWLvJ#mDVV-Wj!Jw#|%XfhS)D!OrW^+$aATLEMeQ*3&1eamDZX+L*ds7Uk zuIB_Dunl!w1HXZTk5&Q!U|j~G9QaMzhCr`?vk&`bHGX5BXs>wh_?){QqAPg;091J@ z1OYVw06`&^%?5s}cEoaB)ANwDL;`>~ny!zjjKL1Us4UAnR@76Cm&V`+O9AlrI7)*r z@T9kO(8Eo8B2&O4LU{j$27o;ZV4BRA>~#AItfWv*UK{T zTX)5#=VFB|N6o4fx|qTbKOJf;g$^ydHxb_i5#xZ{(K?BUnResChMrt5t6NFWbaxh{GCplE08~Ee_8v)8opx~34sF+m*s;>vEP8g{DS`g;HDlSy%#2a z&Uw*MnT&qPV+IOQ>C%HBC$uESYWo_4YGB!1YH}YxfFA}M&Oq+K`G9NGX7cqh^`$hv znJs=iWZ5b65+iC3-6F3eSjfzrlzDqOt``kseb>I!%}eiGcL# zd+PzNfwOU4#{>Z&T!HOX_@)Z+Cm3QF9_{K#0{P5gXX9-TkWKJ*_e8Y{?zM5d+2kD2 z1yf*7P+lcgx6P=oFfJAv>t!qp^jz(nFe3WmoK9sCYx6Si?MYE$|N;XH8zJX!et<_d}8bJtE~*&Z7T zl)cP59Wdw62<~U53fR^L%BHA%P5-9}rgu7`{G4eP_1p6CuzoQhA2pQ-j<8*dZ!S^^OIHfGD9<-=-QMJpw4%+Y0$$?dX@w zD?X`Yh+_wJ5l}m-;K+7JnZ+GYvr7o3t9|Cm620}0yIm{*`iiy#_J4?5!1yQn9r3eE zOv*hfsF|#!lo#8mo@WyJsj37M{}qFeCHc18(_Q=8^u;-sn{|)(UVw9vRoGRwJQ|nB zS0pF7Q+hCZ2<-Sq7CS*7NjqB#`jY`6X`8aCBG$>Jr~ZbzqM>g2IU(u~yfN{daQrg@ z0@y9o0|$Ky*oqXmALJD4NX{ObtUsT*tl8!b!|M_Q$y@vGo}-gDq6ltyJ`r)vW{F_Q z`~_gIHo0PbAifWoknwm(8*>c2=wLL|L)uoie-Tm2dvQR{#yyGF=U)?^X$9N0z?uEu zpIZ#7Gt6gEPIAuwXflBPQE)nS01}Hd!LK!a31iYa-U_iR@6k%kHtGr0DA(hlOh>Nb zYbrX~qhM|;=xF3tK-=t-%Im#|&r7>ot##w0Z5sVwCzU!G$Zu=06~o*s=_4Yt415xE zf##JI+*u9^<77Zp3IODJ2_w{*C1yXCMRtkywyypoYD@Q&p_6_i#XlL8Vl@jdu}n8P zX^Ja4W1bBC#=W4mon82ej&_#ee}BdYl7wfRGtH{c2Pp5gWl**-NQuoNmmJcW=+JIN z-?1ZWvg^#I9lyKxK}yEaRe=&ie7{eyz*8w38);l0Q$^0dXi;DIF#$ z?HS0*e06fWP^+3fMeM(|n2Au?wfePHAYQgfK+c`x%L&lp*Z}UT7pF37dy>E3;4|q$ z6+WR;(k6)_mHM7)Y-TR*KX4^SGC$+m%P2O6&!b>dtvJ)R$zSh6{;bGtZ`gl0Fo}LF zGg^zRZD?7w!`@N=qeo|>_#-sVW!6#ZB`diTKOS-qG~JId`flUk{sm{gKH31zvPrSS z>1Qp38TYT9mb3c9r^W|1fAIgA#ejm){)n1e4LTg#xe=_gEPTSPRIvyQKHn!e5#ZPI zq+lY-D-dlsQC;KHj+vXI!uPi;H#OPXPxaCpZF;f7UrmB=-RyI)`Ew_h`d#B+|7-m5 zVEkt@knr_Lmdwvej1SnC;0A}z!JO~ChYsI*GkW!|4y8B;_swkbga9A?W!#h&Nb;@Q z@UOqVzCJ49Bz4#cS{=ORyH`sJ>f1p}?Q9%Pruu>%yML!)@qQOab)R~rAPL!AR@zVD z&y;*?z`XDK%_0kGVGiyLc}rDJnYj1XQTC?Gk+h2J`8Pw-;7ydf38^bS#RFX8XA?HW4mW;mtcqWjzzKvxG00q z^JV$Dd>c<)?R~rP26)Qm!!k-Sq?7tkVSHtK*>~KPUNxhw(d!f&sg&2?fZl(ktF78C zCaOcTM*sBjKqZrqQ>JWSQ4#h)>L|7HsQqOvdc-XnL$Y0U28U1RKI0E7us zUg)}Ok?P48mg{T0X4HStzkp#>`D^6W%r_68$6LtH1L}wq_kI?4=TUAgn?Um^?@PUr zT9VSnCxg>G!wd(LHO*a231N;QwI`o4rM~;r8wrzWf<-ug!I`di@ecOlfr9&Y>1)^j z8b4)=nTf85J-TtF`56omdlt2 z0&UH}8CwAbWl|t5^VgwdQ0#lFEL z2F4zL>NI5&`HvYASyh-|;2hTft=NDx`^S%`?&`>u=*X1lNL?4v zyDtW^$SrL%`)qS5b*u~#NNAgyE#k_-+#2rt1i7Mg0P3iK)PUvDpLB7bL08WEhBUzh z+MxfM?7p`QSN!iPQ93)B%A~zgro$H*_yj2~4STKq1yc6juWa4xKN+CZwgifMaLWMW z_2K60c?Hw&7V8-j?wratoiYb=poM5CzPaHW>0d}q-Nch;cdHfGIMxYIjtwTj(SEV^ zV<%+K^ObKRy&nL(bdiIL)35?6~0OPy0G(s{U*OO8nok$HR70YD+#o(@uSM*;z?%M|~`;`D$j_TjS0RZh;(S z1xe}N(o=nMchAAP8A>#)C+bCXnU2{^ya@^iIT+lhvSoBhYG(ydlej9gaF^E#L(|<- z+nRB^X!i5B=J>y!v-!n8HiawgfA~E9>VdfYTNZJT)W=>myK6VDD1$>oa1`A*{(IFZ zzkAUwK6)WtRppxbX~s#v*S8v2>s%LCuSJO3!?dJ!`YIr+alc3;BoiecmhuQi;ls2TMtHD%1pH} z1%^skNammu%}Td`{VScwnYR~nV$Cp;Pf82C6EDZE?{N z+x()B%@&?TPkyU|nLn(2m`L09`j@fUtfeSkNoZgNMYv)QLq?hNnjgHm@#|m5Qcn~Lu+*@^E^3o;tn`mWTs3=0K#fuW zXE#tn9&_(0v$`g=T`Dh0*=U^!b`Y%Y{~qug&Fyzz-JIbUFZ|mlFp1rfL(z2Q#^aXx zMHWLD$M3@UfHP(r3tZLa<%^%5$Dg`k#W}eVhBirjW3%NXSgFmiGaYG8q{-+3AQ<21 zU>zhV*a5l*%5+NZ;(^*dnnJ%1H~#Kx=GYvw{sS%vg_3|Q%6ErAj)~v~Fo}{&cby0p zPj7~!d7e5dbG%^X`4kWEfUONYiyEtzSX!xhI!Rm8vE5Kjvl}by6>z73ruNu=8{YE% zkI-gI{IxcwSD6&+EZdT?%7=ZdD}Mri2_q5jpNKRSV0!rRqulxWJ{7tLDW~qzXrGe8 zyPe+AOs+L_TTDofO$64;Ti~f^D-`Dhz4`XtrT9>kXK&=CU9yxYuz$DQ*3PPaUb=9s zBKg;xQHoM*X+Uh|#zvQzIQbq6A+8uF?=`~keBB>^t^3?$jO`!RTgbDh zFZuwhZQ4%8I9)mv1$($M84Y3Zu9<-~jlCpj&!bkLxoRH)ZyEQ#HxZ(jWol2Uyxh=W z6<$?hK|z--+w?m3S34~^|HsX`bw75q^LBo+@V2%cP7klVBH$bYPRyQTrZa;X96H|~ z_XKiZL04Ek6w$pj*apRcW1$&Lopi6AI@mwZxy_(ie#%Kw``$yggZ{fcjqZ}auEMt} zd>r#Ab-d?b#;HzE?0!@Xn(dI>{mp>K>XP|D<)imrtrMfX4s&I6y4^p9a90Ma$#9U$ z)Jxjpx_1Y%Qb`kKgr!R5y`Btdi{H6iI`6VIN%G0NmF6UPp=GyGzD?MDwf=EZ?{V4> z?}#%2?gXFD%4|kI1!eLMYSuCG!E=wY(!FxeTv@H;c;=0a5aH(x8gvVPXPC6nw@D&F z>%S$3zU*ug)EC*&>8dYd?4n_OSW9 zY>%1FcU5NFAz*@7<1K!b!W|Ub287l{-GL+hxOfr*w``uvK-c$NizT5!1og)T>2B|K z+Y>GF;ZYvvV2sQOi}j7mH#&Xs`-p)m>dip2$=TKx8JO$vq=@UP^368br5O*&Y{y>B zq~NrZwx=WdE8P0g<)P>r%1tS#G$kxy7jNtZeAi-dj?%o?pA{iA)`w|i<7B+txFrNP9Cy+YJXIV z?soI;6&a9ZkA_ejYTHeRu%@wRr~S+ow0}Sx-p}l?uQ^qfjtYEK0pV+{h;HAaM&=?{ ztTb-P~*0uz^VV;x8lYgRF-R;iZy;u~Qw5AOs?R$mQ0%A8* z#Uh099NrI*VI_y7p*7O$IiQ-8Rec>;T9*uoLNMLh-e0_fWNEqOoMh-Z2&I@~VC~7P zzD*GkITfSde=X9E;s5XN8|QAH{aY{>Q0J^7wyDUKjeGRdwu1wb?pfu%Z2-0PF4H$q zGP6l2qTHu{?c|f^k3&U7Tt~mzNp-Atcx+$jPX>fNVf3>U4s+&pPycZ_A~<}X*+P@X z|A2&l_h<28_nb5*pr-KGTjhM>?umhdmFbF1 zaGL0?>%5*Hb(xb*QEdXVGUXlIn5>Amu{B$_xlshNM@MWscIz`mpIy;(w!4KGs4;x- z{O4PluQFmQZloZCdxg(-!CC;6F~3LAOhxXPy&xa6>{SC%-E9|;%^MYEtoddq-LWbG zqABms`qpjnmB!(DF}qhtYI3*6i8+&jy#MeNby&DHz4ANy%`FQiSi3CWe((BJ%_k@$-b-h1)4Ku)8e+#so~Uoz$N1!mYQ{X{?io|n>vz)`L$=WH#2({UaJR?G=n zs}TH-93;hiKmvhWf7~WFiQS^2$}DfhU7R<^9JkFL|8<}JK`nszb-4{{)Bf^CKM7Le zNm1&3TVznvFkvmN8`8iZgZvrLrWmyEDN`rhrR|xNjXQ{a2bU|G*F*4SKS6c%h2X`r zv&^L+3Gy$q{eSBpl+%QbJfpNf{Sxp6#xnNgMr1V|%6hI7H*yo?>o@F_t%!S9uDcJc zhv{}dacA}FmmC~F1yq0*2epfi#w62`D!`vhZmkN2o^F|fM(-=svWSO0S2v;8vtYDeOayV;u&V@T?m^SBF1 zms4UBK@4*D$H9pFx5~K@gbG9}ZFC+zd}YQlg?_ww{yhtehmC%ff)oizCZ@Dn(ADlr z*NN~Wc8lrBf-UV8zbD9fwtI(NQ;<)j59vJBFi3(Dyet*s{gb#EAH~|y?~8$5G&W&W z1fM)ScaKKy^nFzgbSl3YGu<|0PaZiTmz`ruOHlp0HmoeWnStl(+Kq4TNK3)tPmovx zcngpFU4WHwm=@+}ll?ABv)QKp0PdzSw=7?+aodjmO{uNEucDbhaoWrbW_HSwFE}B0 zvSvu%A3snP^%s?r)?&}Psap%{<(c3Qy)fxD0xst*u(fw3yvm%~1@v%HkuEJ9=s|pz z8vGt)Tawzl`Z~T;N?vj&07TNk=Dd>?ifvVcyA=xSk-w(kR9TPH<o9aneL;b|4WEPN}q->+B)#d*9*5gLMG;Mn4tALh#^yCQOGNY>MsOFid zC{xwlr1$&umt0KX1c#7)`H`V4^#X(o+23ce#4oKIy2JHhu^ z(wey4>8I{jyQNZOp*;fmrUV#BIwPu$Xlr2$2-ovkRgHR?fxpiWbdc|*CvAdajLafS zZn{#*v3Jl?8v(o^qf#5cRC@R$m6qr?HQrhsQaVk1PPXo5Y~9l)3BlGNfIrH)k#LX!8V7E-g`YaWW>hv{rh6)$ z=P!h3G|Ig+Spj~Pzc7dwFdDFt9;^W$)AHC@j@%BPq=&9c4Sreksfnua5i9w_3W*mI zcZYATOyIk|TUDcgU~ID&Zs9mB`o{GA+Q`8i^H`to+|aPQ$Ocb&$-3MM#67^}QID$A z1P{XXdx3W0ii~cyaGaBkm?{`-tgUSlii`)!W0#v2{Z~gZ(zmb7vNG2iIrEpTxok1( zzxGGs-5iP!;i|8Pmr&tp+OOjfdJ!H!se@UM9c@R?94J#-I~o`8>_ z*Y!Yr-;EyjlseTbZy85jn**#tDSdKP#{Hf2Uwyd#)yKOYvHK+s+AnXXA>SJ$oigt| z={*m*EHz|_=(e36MUNJg%-$STSCEA>kE`F-3QUkaOaBk-m{x@B`->9Q7wT#U3PaZC z)i>sc>quv#j*RHPXFh!P;zh~BX9bQO48Kd)d^^COTp)>A8_^sQLu9!Zzq?&PrXuQM`cO7w9rGFYMxgq{_PWfpXll zERJj17;7)#|r-NdUl=5AM|sONVi%$J1|>uVn9qf0G5UK z)Qf~T0@OdOpV3o@`1sTymt)8D60Be@@r_YWL%}8SpBb4PkRZduCT{q{o^_L}U(ly% z|3W^f(sSaQHu=_FC2oJ%qBcZvR~|gOSE@+%d1|8P1))1CXyrS##GPqnBN0 z_t$*1i#=b?wGyaR@79mLK3zFj@Y==nYf*Uh-udj4bgy{m=3fl%!8^keuUT40*en=c z1wCt=EG#i^Ri4_ZdsKkg(K?wGdG@ABmbIR2W7hU=L;>;0}V5q7oF+x&Vz z&@skVmPckf>9-@)@r&H29UfeMM#tQjduqZWnbG3iG2I?i_Q=KT6V!|xutr}zV6qoL zXZ!i$26K_|^i$*1{`b2(v-+zuss$Y<^8DKmm4nIS>xwzV+lQ55^EqHP(uK~jx(Lpk zqj+S_F|EwOD_Y&Qt$w_*lHb-PeC3>fazcH)Fx2J!P>TbqWwbgn=UTtvpVdiJ#Qwpj z2m2#Xfjwkb>+-YY89mD6K4tDav@PBNW9=U!0=3 zCzT=fl6b52i<9tI`+Z}Oqx%N;Xz^I}P_r+IPh`NF$9?V?13sRecGb&@sQJ#;(L!~4 z++8G6XYohdxz2sxwXK)9CG%CP$U2u}Zt(@j3R}yX(F=xoIP2xkc6A-`cI*3JVqLS} zj$RxRtGS;OIaGS(BlNnwOPP@`{?>zT<`*LeZSQvnW;b}vT;|y~F_810cO~K)_jfNv z3^l`2MGK#$z8h8=9rCVqnzk00>p z`zFos_UaFG4~Okj&zF#V&W&mw{iN4{OSvcMxO1;HwXLu)7Ua^|vcvLYd)?NJ;3KD( zA-EmuhLbho#UwSu6q1~ettL&;{YTuyY>n5u=a?2$a0k*B-+w)uW5vK|Kh-p07%146 z=u-u`un=T4P9kXxdi)ku;+!ux`w?1Q3Czfk@8|ZFyJnMNKE70lpj-IP1zUp?04 z_C08syfP1Wc1u~yg1C^HH;?$;b#2tE3u#_FZ+p*kCH$0y z-0hZE`>BPQ5IpHUG5V>&eb)y~-2RvJ!>*p%G<(=WR?B$-(x|Y9bUNafUlt0^%+0Ny=yYzq;d)|`4+ZP|x+G!tct1Q35n>JvU%fY+^r?CTb3s6x=TjePy zc9`pU!Fy=7yoNhrl)*OLxLs3Ue4Zu+bS-0BBC_YJH_>;E!LbKPi-|v*UAiu;z?%L? z+-}8hcXDoTphkPlafS3yfr?h0V!`q8qeNJl;CB;*|1@{b$vxb${hMj8-`pw`OaW%l zN=?88d49*_R+vxEtNoD6PsRPO?n5bx#+1>!j;p(N17@Yzns>#y3x)7(?#n!Men=NC zFO&QKOuwDOek^2!ZM&s}*w5!$9#q@IT=y*J>$Ou;X0Ox{g%|it@Y)Z8%OR9Ud#^x? zuODx)B&@BN^i

6Z+$C8ZY(l){9m7oD;XJ_i0_dVU^|-nm&FYe#7`aMB@%QRyr3t zCUF<>(*5_@b2icUJfrAz^PHnS&pkYKdAVd-UZ%Sm9lI38!lhdc(zL z7K<uh}zVahtyvzag?xI-rjT+8|}5) zsi&8$)_)Aq=ajwW?@K|RZ;mzIv^fF=AYBB#;M-$9N@WMQ>F&CtExqGok+;urclbvgRvJwjZpU8w9!yT3S}>& z3E4*WWqxNo-|yAa@A~}%zw7!uUDq?_e&5SE=RR}auXFDEeNH#Nc5}UTQvF|vX@Rl$ zH|&ovmG+AFaM7!A-1dsd$SZk0|Jg`Ouz$=UpXJ6QW4P3whZfnE+YXuWuHe7=iYJjp zG z_uxD+gj}P&(*v&;;rL&=7UCaE74fj{eq+<-t9fJoW0$xd3beiXduQ2DQM`dFFeEpG z@+t^R&k{jO@yvo8gg-Te+1e}@xbZzp85HN<^yb$s%kHimrCxn8PXN7}db!y&QTVxG zVkx_+7dpEYvA=iCHpCyR)Dy3pIFFhWC@1SjB8o=F0t*(zZ>tn8>I>1RZ)NTFq;XR7 zN6K!`^2QdWXPe_l8U|a~(uag%-+(u%6;RraEH}~Cd(V%$NaSwxH8_s`7;3s6!5<_5&1xU_=Oml-R({`R>2Z&DG?VmTq!q)6r*!YgS_Z!>X z;1XMeJkOQ|WfwjCS2;c|MdO~rtW9*|nRczLt#RVN$NPVAHGC#tw#~cH%BSYU+`I2H zkA}#i?R0+t~r8^jycO-#!FsL6JWg8~?WMWMjMM#xY+f*14r#f!^ak91RqwM~WX#@Lp+j zd2_yZeWsXe`!90XTSZg5%dlC!WM7E|0b^p(2G7~X20Rg2Q`0Aw!*s^`UH=*W?M#a2 zOZ_iGMCU%`H5|iDYGF{Hqi`a%Cs3<}(U~%lp`b+CrOmz60;MOK3a5tEV8wMcTp?=I zeXe)&Fjg&p9KAYff3NMA-S(s$k)=43Xm(@dllfk)R;AxQmlr9;8Nxhw zaBpjlq9W2CiD*vbh%B4gdwV|hxA0#&q=q=Fd|CD;+q3Gfe2#n8{@D!sF@1#cRN!NM z{BphM$KU3Z^zfPg?vc`I1sGTE)_bEd#FyW9+O8Ajy~15>cka#VlHJd^ONhgwb5XeY z`n@^3XO#P!FUPQ*hti){C|w0aeaZCoLPxQ z^-1yFvfE?=b`AHHkDdsh2(PbfbH%&c?kTKF-N_*2T?l<9QE6$l91eJM(4|LhSNO+! zOL7HbhKdP;iXUHm`!DJf`(r&lVuk04*k*7MVAl$!yh6jcE=3Zoq|ZD*b44)pvn|oq z+t|V%Yvg}FwJkRw-Q(xE$@F~C6KwpE$hhMtN6duV1d@O+tg^4h{Ez*X&6JT z7U=v{8e}+HV)`Mp{jJ@dK@g=Z@9H2VmOSOw8D}hZ;a%fOg58CHmc~8*W%24Ci)qQl z0J8zhrQYM!7NS<$#+Y4nRG4*+2+oKnIKm26$i0eJJ{`=v#ii%PoAyX(UtF4~A(3y} zbWiDgJ-`-@1qXXZ#_iOW*DDF~v%g`BwC9aKbX)r)014E%)FTV9WE>5+X5|iT_{l$u zgWqY63b#wXm?nVgwyW*aW$^Lf!??)@lELp@-DobSEOb{W2h_aK2&Dim+ zZi6VF{*=Pfg`RURf~b|Y+)VK>lhu*2lKo!I@G?6zA$lh=PMz>`j; z-bcfZ2D@jp$fCjPT)3)b!Qb$WO`1>Pt#Y=cQ#X^jsHc0JKey*W&`Y=rrMf8B3e!r7=EzRDYDrJ#W6V-Xe!Y%FSy+otjIV zEt?w!8r5STD-|6Dim>JL>_fn?v8|j}Mz#f<+{=|$ONjuFo&tX?&|+DpnA%SV zZ+79Ihv6UBA4f3&X;pR;i;L-Jqf6(&KafV8cpZRvrAWy*Wp_cZU`pBg+q@l{(poPT zb6MP=#Qq&FdQm3A{_;k4oN+We*X|wnbiUH>+otIFt1tghv>ZyyXC1?GE~--Rp7E=@ z=eTTjp9z1)x^h3;=)#pnyoG3gd&!k2V(j8RUt@(|8M)mOb~*?1-n~2F1*ax&=?<|l zx0Mz3Z+_o4iqB5}Q;-ihxZ_#yZZFCXwwbf5RIbR%L@ub*1O-5jh^;XBycX9h#d!Cs zLf^5)VXqh=z^v(mG0S<1yX=duggUh+Wm){vl_FWh*8Ilv@t>6cSZq{r)gm_v&qhBV zJ=v#xG^P!ax&LRO0DJDu;b(3?b5%C~c+H67n6_3Q@A_1|VH-Y(xoUqKT_v~&8M(nA z>-HT{lc{n%0G^-q=c=C;#rLZGo}_H+Kl!1-)+l@P%SKpJG(o>FP!EC^kFtdtR^{w( zlWEav<&8LtCh8;Zd{j8zIc)f}{;f{uK|c?=T5rzgk3Db}$$gkF_RY{?GS^Z3vW=s? zWBc2qUVkiQpX~qSt&Q?+6oY!lmuV%?2wtN0q?l&4AccejVW!uSjj0mPK3BQxt^ck4@rzA= z=!Nnb75?)c0UMX|9<7dCtvz3}UnC<-B!-TQrp|E%NA#{S{Xq0p-YqQRYF^z6#dzC_ zf^W!l6rcsh2L1L;u-Zx6Cg7Gcto~z1XXpH30uINvUpoWyric2`0_$*iI_~c};m_iU z?K8C?T>RdMks^S=D!ihgv#@f3Kfp?Sny4={<0J&z*|6%tT+~T6ASLnhMSr*-&ix_2 zv=5IqaMXKc6If)i-XFC!m%XY^uC_l`=RJI0d();BfP74W41`|x7FdU z{&RP^zMEN@*5^gD%`9vGqYgQLsDrEK`G?@Wv$4q(35(;_cmq@zZOq*Z9ERTisct2=czPP(U;r02K|J}oJ zul~@A%lht#FPAZ>aqCB^+F@Hnqm8$*;yN16fc9xq!whx@X^v}(gzNq_mmm9jqNFrI z_RaD~;vTkrsUo<;n(xf7cz9HU@wczcKC12A!>T%N*uPC_F~65@^j-V^dSBbFoQ1Ie zxSv*ucHo=21x|$vkZN%!V~3sCE8=nXma6_IX1ol|!LV1Qu1K>Lly~mp74wzqlLp5) zB4jIqd*D>$-b)&=-HCS>ZvA-p!+%iFlc_)PNmhHy_pqWp6OOhItpw-+XIsSTHS*XM*=t%)zqjnr>+N2 ztWQt)`V_=D@IDBUzZ}n<_4Duki~Ql`Ch{}3XzwGoqOF#fcwE1cNiy#{i~n4-MR%R~ zgFCU)@;^$N&6!cCn@s#vIDb;E2zw$I;1~bThhX4|;q@X+V~q`z5xW$?SG&XAes@Di ztcJlwwlul5-ujpB&Tjktt4>1aUH?I%UImHn|Xw*77KP$Y*AnAuF$`B6rWNXA4K zth5%YBjsap8GaZ)S$*G`<4+SE4L*dY;A(XF-{Hg*FpWtMMdpnP#7w5Dzf|;xV4T0; z;f3G-s}o&b9*9i;W{q4T?g|!S;XyRUe;;LgX74`(D$iEHMZcGc=v4%F^NOO-r-m05 zMp3xQjKg(Y5m-c1)stxOn`~b(dM(O?Z3@;~E|4YVNBHitPG65TXU&n~e&W?0(jV{j zxNZ|iY?>6>&s;VbctYec8YtjTKgVD74&i+UwL;L;@w|kz5z-3XMM~xEi^nbUcjlBG zCMfWvKW~8-(G7+tEK|C^J*`_e|IpvTS12&pVA$Kzz3UsMPBajCsOBDq6Y{IGK$X+W zdaYpSg})EtNIZ4NTBOo;Am|!sq~`OC5F>+O<+Vx~!dd}ql~Qnv8#|L>C^~QYsX4!q z>So3gy#6+R;p28^R#fDU*I`Qe51Owcb(3(5#I@d>xfEhCLMQn;n;gXF&l(I93RH)G zmDrN43JMU0&kLoZJ5gEGgRlj{R`AP4!N4Zl;&$EQr7GndWi4u6pvEk|_<3K>kL?R_ z?G1`>h(nnVFDttTXD6$Lud8ON-Biaamxif^gNosgnB)HhYK2IXFW0V(oXf4iqu=p> z7Dp!PjI0qzqaJ|oyaS8GwkRu(ICQoII@WyGHAk{#$-nr4)qjXMcwJp`p62hw+KM6z zSAH*fLkf|b9GUkRbRaE5WHFus4Un3YV9k|XB+GTHD&$`}ovCV5rGu9mlTRU~Hq;2Y zgj2kj~YALD)uIG1Xumh}bCW{P-=z^852V*f;_7LLCnc27eTKL^aHM=3Sgu-OW3yk%4 zQjej=<0)0@V8_xC1!fJz5K@_iH!&?9&}5$a;j%QCBOb2pVJvtHPtb{l8+i1VfpcJ? zM^itwr26G0(8Ns)%1LP8Eb#<#&O`?h0`Jtq!-CZ5mM*_JK_^_weOgRp%wEFA2ejM* zKU}q6%idBKUSLh#JYr0W2z6ICif=G)o1M zl%pb$lqIrS9yw&XfWf)7`OSq!8b)4!&~9duoSNUL?b~8V{8n%$aD26Z-rMyW(_$>J zKKybT;fOl3MwD&_9REX`-b;wuLnvGq<^kmj%$@>ARt~W(;9a&_5^V{Q*siqTJ8%-j zRO{C=J(V1$q!dITed1FNnt01Fe?WsEdvz`7v)-)55KA$FiW2SA$8K@3B9k zwBWfWBx~wWDW+~-L@DTEOHeW^s9R++jo5bA374BflNHlaPzt)@z`98_f?3?bOqDTn zR?2Zl`Zw*-WOAE*Qd+oX@|Ho?VBV?F*-EN;fpOca6r|yE#(}jk)fcRNkggGDQfC8i z|31a^DbEt{$Z!S>bh0HVmKDmhbYNLH;k4;RdA7EFfvJMa0z)yi!QMW;8T@_RHLueC zQM*qoj$kYIIrKPRCoDm*k?!}|PI4^r3i7wCKJp$j&J#xRJ==0qJhexc%bTY!6~{X2o92a_ z<7V>@ZDhu%9j*-L>l3Q^fN|p?_3$kJHFWfOjQZh91;hlR4}wJaj*X}&SBlRo5U;;E z_yx!yC(urI7MxKgR7bEe8hWE-=(%1WS!jrouejo$O!DBWKdlisRU~+3+>ojn*_ncN zoh~t)`qC%5WG|5^BE0L7gl)hTOWn=&{d%s5v#MO8WH1Q%4oU326k;EtY}a|R{B5{n z`^+|j=c~uf{To#gNsj>NUu!GL*2$6Ozw*8zv^&2IbIc8XDzcLkDCeR&Ul4@Aq}M>X ziGg2%Rhkp>R0M1*=WR+~&_cHb3Ui{hn6Htn8Ii$n&1+c;<${3vNdY2m)$nGsEDR0MlyLutFa8bUNS ztz9p&|53<`fLSEQcSFUt`Hh@NR3|kPe~2gt$xn6@73S5H2^n10DV*>gN8Vs`HV0}C zZLE9$mf@$jlL>}*0OnNaI;*HN+I{5ZrMu3D3 zlgOqWAt?`NXMW0nwI!jk@R7#3d>WatChsYbs!Cr6e|M0f^nF`4uU<>V_& zrj6OFp$L@;H1>VmVzj#j$lU4ytT;vaVObY~ zP5tQVfDWXU7G7gp7>N-O(^nwcBpYDNsm?N>N$&w|q9162 zaD6y{GFIIq0ERpU)9{wzVr0V~#bvgpTc0b}93=me@2u${(Qk5McUQ zI3r6zdOEWN-KvwMkbs{u^&ZI57L1OX(t^Fkp*-^@Qdxl^Y9){K>4@?|(p$#Ha$8fs zQcM`EKWU_pa}KOGP%EhEOMgLLU4$Cp0w97dq~%L$Y)yzDLty{gnU>N*JOl>j9*Vuu ziRV9=gm!(Uxwz}{#`yr_=%u{piC!Pr*7v+co;lxrUJmD~T;dw@(jU7g*vf#nd8=-& z78B`@oX;F`a!)MI^D0c{lY4!6hXwimNzTSq3OGYaEsXlv4UW;ptP&vrEWP)FGg3-~ zw7kJUne@Je5f!1H4L6$C_(IG>M1mhky4%kAmCr`2r5wJ3*q@E+>^3TWxx=R)Uc-ltP$*{QYZ{{mPlLwq|qi-3!M7tj{9#c;X zcvjsFTwj(J5FA)_M17=D-#7ExE%QUfwu-gR7Kp{7+Ws-lGusWK8te=F)1(P=Tzvw| z)a~>UPipuX)ZNMs|9DKF=Ilk?iZ{hqWhSNGX9Lg-=JK|4PbPHKM){g%Wv#Via(Uaj ziyiBz&G6NKx%b~9?)r^d-q8E8CX$74bqD#bYohZ0xYuyj_qW*HQB4$oQ@Jd^Oy|ax zxqLDHi0jmc6>@PP7$Bp_-qjr0jq|T64Cs1I zJ=GDe0RW%1CU>0yvk03Wm@w_hZ^Smi0)GJ3^_!O4K4HgXDbi0NCV%U%&Wni#xP z=ZF|6)8$D|$2B?OWZp6s9?%RqwRnsSQTa*e{3g5T(DvF0wxDHSmU%c|AZ&zRFeB?o zT7a7!_2ehRbmyQhnI$g2~#6rA=k&I=2 z9$bxkq$YXCOl{_JyA<}jc?GH(I1Cy#s zLDd$=Ko*CF=4p*{E*&G4HZRzS-VBh3NcH{VhBqsxgdZr~CvO zK6}gfM>}=q)gD43EJ_b(QMeYDP=8_Pm9ql@zAcHczdWG1?ht3Fq#> zIz~0U+$#TT1 z(16;2X;Y+B`Rf^r!CB3SS5xKo)Du17$ehl5!-Z$RcV;*K6d=2V7tGchHL?#$vgum} zW~a8P*uh-qDXZZz?DkCNcwR&~qI1@#qZ3h2@(X)raSVtO7|18mov#j! zyk(Sn@dDY+dkDg#U!N9ohwar7|Hsss75|p;D){i|fk>OUiTl~@q#9YJg}0I|i@pP$ z->R>;`Xd$IY1D5Eye#Y-iki&3go$4#(J4Jtr@>U`i5vd^Uq5`aSGa#ysO~a*zWYBQFhEJrK_E;PklE-bSwyJ!*60> z;SX59U6HR{_jl!RumR7a>j}r@UhaL}3?in~0tTmbj zAsM}4BqHv}_l~pj1ci0ht%K%q5akWpL#*!vTChGc{HZYP)dLNw(-S$wh90pt*ZR#m zuEt^2!MB!1O zsTY->TtH@=T1YSK3=^qPWrh$)=i~`+1Jb{q0<}Pd-PB!9xJyqLb~l+{u<4CD8F+vJ15*f ziL(pZ4aKr|C$xp&%h@xTpA>XOCRU<)MFbRbbOllS>6yAGH@g+=Fupf4o+yQ|Hq_8R zeT~)Im$!JBooiAD5t%8=E;WrmI+yx#jqmY%8O}KyXkC*&%K3iwUZQ&?N+eypkhwTh zHwQ`3woUk&$ZE-0(`QCQCkT58)x9EJ0%4Q2wLcM(!m0g@j)5YRpzZV24uV=R^U_2HDxDT*`e zo6f;kdJ(6pQRk*z2I6&E*j<5^r~f&{l{kB8RXDn{1UK}6>KK~J<{7N5KSyT_asHIe z=r$a=EA;GW`TekXFU6HH5b^{O2~nTh6K;I;WDONWvxQBfm%RDv zHui`#hv>zM50<42vc^HBUM$!L6? z!YqEp7w^zE_%}XC)~6omGZ>&b;Z%jW#`_x=Y>uJsKS$l%--*-N`!lf_b@PTA`RvdO z;skDS2siM=374m|kO^)6QhtJ$6si1~2);En1LL8{spKM?gO5}Uclw*i_UQHn&o$p9 z=HS#OJ|s+@{Hk`}?+l8J(FlGS$tTw~u9|@5NrE8zn3kY$p6#x25bFN{O+)#~Ek|D+ zW=$biOi3ri+J|%{df*Fe!)8~-Ux7-PyCtgLkuX;_zeKBm8-4TPWJexES`fWg58%#YRngHbD{wN0 zjH>~R+W17(Z^RD?aS=H@alJomjy=E(DTO%(Ueu%sntm;v|57gO^LRI@hBNyb%wTnC z0xZA$|32A4ZmsOs_iYhw(hyFeMba5TSeo>t?HW@|T(rTO?gXpYKDdI=2}q$mOr6#i zkEg-bk#7e_?1QeXJC?$nllw^8@zOA;I$rG6*S`x1;N4=vjLRW@?P7smNP3 z_s+7lxGN+ps<@h2V7>42N{E~deV$Ph4jnuIEYu^%GqxKX2e$D2E0sU;0H@#>U^^g5 zm{(_=<&e`(7vbB?@hBBr^MbpWKKlDTp0%c~h-aJRaM5#cWrx)$`(~w_yFbgq(q`Mo z{^RADVX<)UW&gPDDO5rKPoC3CoRd1^7XaJNx1`vAsS|IuxI6KtNb=qi#zag~&R9$! zFf*p*gjs{%To#Pl`8qh&y%(rZY6^&nbALNHc%4YkRjD}mP~!U34L-T%ZGc9rK{6-7 zd#~=0v2v_wE=|mG#|dOcTZCg}5=*tYxU@+2w%$t--$hQ3JrX$)TLDCcHAP)^!eN^jCk4$DOdWhb zy;qtf)qKWKj?I2ZJ>IsTpb4ybD)_iwR|>*fy7`Pf)OhnA0tmv4smKwkfpE_N2POE$ zRQJj`#XG4SS0hlIi#GJXznhGH!jzJ8$ox32#&bHa;jEU;J7Y24r?0K@`iCmyJH2GW zB+04xM+f~vK7<~5F)@;umK4yQ3HNUU2V}_`sKy2#uU#@wzQ%cXL4w>GKBHyEX1DE} zZ}sf)o6}K`0nJt-xQpGvj0XVkX+$T8zKd1tqGBX{ij&aEmn8B@=l;2#&pWI(PE33{c=A_T zppbaMU6FEyH|Os)-xRHOrz_7iAS!34N4m{^sEM3^2uB-6s1aR#)S@m1?uEy~U9#MW zO4G`W603!)xVlD-=UZUeuWj53nNMM)ciHq_!RCL5Ra{Fr=7e+Z87;r4-b_`7@8I@# z;z4*0#b5>1=#1UUsD)*D^!Q$K{`>4oqV(|i5TCZqVvW4)$+EDo2VAl6j)PtbYuBm} zTroLtIcAz^_wKB~)muNpPT{t#2H43pK2F{M(}svOiC)cv3%tY} zgvr#Bc~jBB${`g*p$r*0^Z`S;GjT~8M(vUBA3UuS(2VgCthf0U)Xnq)Zj=aOK5(e5 zBI|uv{+_XK5L8q~K@dn^UHJ6-n}n8uy^OZyJ`9(Wp6&R| zTO#YcUg}}@QQOC}fpiI*`TEo4li@nw6%Abv9zwfvAKIR{RdIrJzD(`eCsw8ykT7#3 z&IvaT>H1L9vgq*xy#dXe*3N`kijTNBN72_`^4up{Nv?%}5b$m zv6jZ$$t5fAvpG8#CrKV;c|2M-k-#TI7%v|h1)`LnNW$&SwR2{UG$%pY)2@yH^x+_IW3K^_P%QgiyY zI+kROpRX@+3xfHC+XwXCc+w|Q;+iO6G`J{9n>*aL6Rt0IH~uv=5R>Ea(fntG+7Aj( zoW59*mY>e^6m(OhTh_QtdnV@KS)rFI1UCaDGtx@XJe`wHcu=*+YmVS{`wYW2jsvhN z%a4(MR+zt&9(r1g4bpZ+zGrOmp)$QxJ#>RwSF*D|eza*Lv4omRn4u_ugFyX=8fjx7N@hvNAv)=VO4q5*&~zEb~@Q z!lwr`J)onEBoU|q=ZAU;&Mz=k8L^nYtliDUF34UZePoIq>ef346S)+0Ml~R>d!);{ z=mpF(bR4WBSart!&uR@33a?Y>VJYkCKHqmVW=q6i4ys5K*lqV6ACPYN9_rm8YxC5_ z=WYsG_1%f%rKvDdFX0G0RG{vj6 z?nx6P7B(!^;ROJA2F^LM4TS>p%x{;pc1@Vaah-~MMcqa9q~=rQF9lh|b`Q>-`lhpW z>VlV=b+bGoM*e)+ybVtQnw~iQT#f+iG-rru!6t`pjE2z_HG*PH}I$m2$e0Q+VE@ns^U)I*?n?gyLe&(?+i zqlWk0<{_-XT-PHtf7s_@#tx=%L?`zkYM-#c&Yu`-9!p`%Hs+g!^^Iwb8-M7@C?b*P)H?>%nbr1|v9efm zID^}oPeP5rlR-0#5atp7IsGj}EO3KQ)LO?Pq!1ryq!1~^4^}kP*@(&z)G49IOq&m! zqU&r+;M9}A-bHnZeNfS3F1~k4 zeP%1SLla5n$YuJc;QD{koEHgZtx1#1KYO@Sdemn$T3nwe8A27`(-yw;@)hQLIHAceWSb3%kZ8mYgjTkKzx)8CW& z1H3Rg$I0lx;g3IJRJM`v>*MpZ;nDSwH;+=KOGLx?J~=5xf!amA>Ra7XNr@1-a2 z0)F35zWf<>^#KbF<`q4qpeXoxQ3VBQjLQbYS3vb5y_u;gK4mi`Vw)#y|J>?;Y`|#& zU8^&DZWQO!bBJDQoUX0GhJmA-bP}9u#t+it%7;?LFO|)}!Cok=iPSL-=I|{CmOf`#P2U#mVS9H?I56XUeFYT3 zVIO3&#Bf8VYXW@jgr#BKz3szy% zWC>I%l`WlUSvaq!w7^L}9!b09Py|7~@g9h0f}gGkR7Z9XPmuDJ50y3)xgJuklu-&I zlg@2bBKh?R_HbE#WMa+$<2&KJJxcu9X`sZE)br&&<{luXog@j!qI@11fH)=g>@=kF zCBX$E5?WP`u;H*9vYm*zg>>+Jw`TIO9)pAe@m%n_@_;VfTIGXR5FUo;8e0{3@twVE zxui*Bj^igFN%rZMAlZM-NsqJ0C=&yYIr$_ss*Q=cmrYE7Av{hag_)_RAVfaUg40Ci z(n%gfih3*vDBtrM8OGf!S6aYUk2d3?@~ z9abT)qyek8^r7AeOrOxtM=F|}9HSdZHS$Ws!4jTT93NHDI!oaYa$NHyliFW_0%xKW zm(BQ~Qi#~RyZX(Sz78zIP|I8O>sFhv4_ohGR^7q#VXl7DjkIh(5Cc!>;Ff%f2RF_BWw7Xs11zfZ{aXZ>pKglk4#0-iU)E$r#Y6{zW> z(6qBNDp-qcPpwArryIWBNC`kNxy)uRW+)5QM6rg7*A2b89{@K##`Tag5p%e@a}P2@ zT$T?G^t@%9j$`U>sEK2dqt^{Jm(HC)77ptnb0grAlN>QqLUdYkK$5x=@j=Id#X}T! zl9uH!t%E}#wvL0Z7-VucR==5fx#+z{z0_eDrOM*Qm_s~ZLtQMtW$MWC7~ndZ2PNW= z?5X^go6h=FUae=skl<$ZZ(kH%2d2M3k{+y+UJf^#?wZ#qcvcDX@JH}-1qW+Q@HROU zCgx%lDGR3^SY43l>gqr!YTrf+{DSB+U8Tyx#%XxTx1nZ7On$q6s61f_n(S**JT}qr z($qgxYc@{!4s+5P68jPD3349zp}24U484f!+UavjLxFt(7cb^j=@>UN9s*YcqJ6LY zo^wNh38HXy^kK3PxpJZV`R%h-;Q~MJVA4I2?T8HSE2oh3;i(!kSwY1sQRq!8U&?E#l} z9RDp~g}TBNvO}3Stf2_fqx50i@W|Xf1n;bJ8w9;kOLu!SyuRKs*Q1R^ zbuHEgD)bz{7q7&<4h{!QvWe_6Do?!iu(s#~>eHg$+A&chTQ_)am#4c`f6(%hWrgJc zccS5h<<;WNulwvg6p{LOpP#VbaaZvU0gWV(p1#8%wLgg5{czsyu|ZW>i%xaxa;x zl_8BLs>Yp@9h9-F9=Ga`s8*C)5j-d~;f?`~8+p#lqy5(Si62$tZk&b|Zj;oRJom|- z4!N|Bq46JgoJlW3q`0u2N!z4cBsjao=c@#rjxT)ojHawgGfmc#r6oFlW_(F@ z@Z*0uma!yL>2eEO=lx=$LpsIHw_n;O^&&y)bWs}e%W*=m%))YPa?gFnb##I|Fk0yx zPltYl_kB_2b6@(ucL9zOJRZ{8(K@QHkP4@ZvN#R%;zR6iVXc!KoUuhWkpWoN)K0a9 z=hD?Ke<8|(`fK;l7LYk-4Bd9e`4&2|Cxs_Yh@Hk zGhxh__@9MnwN8hnxniI`ks$FHUDn1hSN32XKns=eel{RXBwr-hV2c{I+aAEy`Q5^X zY16)zAuL>3yP#4E`d$&IlDA=zmp(S^08Mf2kvu%oMBgjtjktt-cD?&<;m6rTw5ix7 zeHT{dYy=f-pGkdvXvUA!2;jr6rXhDer}4zsg!5tRv}gtTsaukJbZNoPtqk3LU*6wV zK2BIF-PrnZ)&Q$yM_57z&236v?v&1pJ-kxZ0$s!Hm&}>ZGY(1_}aUiZuZmiV7Th| zpZ2eTmT=NBg0rC1YE-^TrA2&rI((D)Lgx@tja-P@sS?!Ub4)<=A+0{+7=ek@psqcU zUg(A=*74WZ=u)EDyw9WwTS(tLsj|RSc46&B3n_k!ZDq8eSLs0i`FOpxflcCd(~c1` zo+XJKYH=v_8H&&FR#)jea+5X^Jv+(1sGkPS?@N1QeVav+m(lU{XMArMJ8!}2RP-XM zuLxkRziiJw>}ygluJ)0^L#S~zz^<0apT1OrG(SNQb`dV@(YlE&bldS)+z06x7giX$ z?>-|3r4r!k(#MkK1R@MeX(we(U zhtbuQR)+QUoI0n<<|x>zOI#| zGU)NkJ_gwIbjFtCbx4g%X{~*y1B2pcwl3o4?p`qt4km2tZe?6Tx19Fv8&nt4W;f4yt(85tl3smrBe_PK7SJu& zU+oSJSrKJ_GqO`cUQNo6CObU9j(2(;SzZN#tgF8UD`1NRvEv`N-&nRDb;V)pT<3F4 zvE0-XbG>=pJdgX+TI+(XG_9{%#Pf_*f4PM;EA_k6@5lbw_Xlt6 zkDGp@-L***mh+Fq&YvJ?mIS}7*Z7L0pP$EVhVRYY#mfCjwuD5Ppw5?x*Qk4vdkW;& zYdk@!mmvFVC&_<5yN#>{<~n756@3;Q`#Ppf=y`Rz_%pJ*o*f!rh^?T_$%Sz7P^D#_ z^~Nt7$H&MVat%F1D-_2!c=&cohbJ+bx4N)uq>U6Qv0oSm(W`&c5|OQpsCcdR$4X9w z1BB(U_!uZyK!?40qYZx;5<)I=W3BHqb|yQ#Lk65-1*3IzBayoC3=%qFr+I^mZ?1Gb zf#CJ4%o;WJzE-{l?cErsc}CG8ze5-W7*Y9`*!H=^*2H zBWxy(eVVl_-F#QhUTxu}bVlk?LI%b+8p&l#SsEYfdd_M@KATv@#P^>m%6j1V4w;e0 z$bzx_#w>G@J9BA{V_nUsfJ`P~dEDoDuxJ*|xx~GFaPfHcmAYaMDb>im5C%@NOtw3SlLgA|&hp3`h9dhqpodSjO;En)Qj!+2Q#VUhUhiT#Bbt3B; zTv%vy3%2OeJ7j%4qh7|`@!Za0nhY|Cy)Jp#EnZi$?lB+K*??|w6`qV697V4>$G7YM zV?IrNZx#M%q^iJhY3@2@q?IBTh6;AYYx~}i@^i=6mQh+LlwElvGWeP61)~M3FEP(( z=h`Rm?OCVh70dDMqm+?eeCfw)$U?=JKvHBrtvAoj9>3y+*LH#)g7LL=l$KU$6ED_2 z{LJSqDa&(|BekkQj_xdH{UpT{txQTs2~z!BySG_;VeF)R2fkfAZ=_^46i2`m(e(1% z{M}jQlo7L29<2BHnb{78kp;m_{356bTg|ATfHH%hc|^JTa=oroD880V=_|{m8CDfk zH?3EWL<;9qw7Yu(4Dc&mx3P8k{+0H4tM>1-yzzNWTh1@-J8UGEnm1BL(4{lepTsF6 zpUT+QAChabN2@a2;y0)Sx!}jzlS8cW+Cevv>SYu0-k+qmdinON8I9wwPY=-ZDY@s` zi?$?dqUZ59>w|YXGSn(1ivx4 zrew5A${k3n%%RMBf<92vt?qSeDT#O>pz219=ws@=pUj48N{`*ZCT`6l?SA z)B2sI$nb15C}1+Bt59_zTP#&wicAwe*RBg4s#l&$k%_|UJg21F0BaV0UhYMClu-+U z?k8z`waO}rkj-Q$Yf803*q(@_=TX8xNt?L%9yaQ`fRD?g?C2P<&dApQ(Djgyx!>CZ zYh8eb8Jbfw5=vPf66?{^XnJ&S$GP@qfQc5Id3{B3V|OqV@a-`$uP-TA%>~CTs-II1 zj#iB;VU^tb?qA+f?xW<&zh2k!(48?$e1AU0%FXAc<5%q6SM2^V)x#H8atcNdsy)I~ z($Xj+OBSxaR_?6#R-K`=+e%-N;pgzW7g`zj@cw9g{?iw{HS($p2~b~&Q-2p_q)pAp z>j@1sHy>KOSZiU4*R^hCuqag_uaQPDJ%0K`lzOFAih6km19WV*U{uHc1j&bBcCLL} zfD5Y;Upk6Rmbjwf!771AjweXI1S`Sqa@{xr2rW0jYVJ<{iqLrng08EeP|8y=IiXT_ z!4|yt6Pj{W!BPbhs*Af%9%2KCeMsqR_wPNWO1qI#Q}jOO6;l1vKqS>TS*v)oDh|M) zQ`JNrB{W=OyxQBdQ6aDF*@R@D?3F8>{!&E~PA^0Ip3^KYcvrU%eC+@(>k39&K7x|6 zM#SXKs(G-!Q>vc4CjjnVNp|4F_MOMO?@%$HVcXdBv{tPgg+4eM&2m;fJO?Q6mYCK+ z)zW%w*t5|pKUEqrrKW&SnD(^KfS~Rkk5Uc7;;o7^Y3^>59`s3Hw{kabZE= zh4~Z(ITskTXRf#rIyg_jJfXo*3m?n8t*zLV5%iqono7z+!0|u`u8ZeGC%%2hj^zNe zvhTBiy*5@CXr3Zq9@1jE!uQj*zWac>dNS3MIet6T>etIgXBVR z{)^B&(7EA*w98-EYsj?^?zQ6o{qKJg_@4y+CxQP-;C~YMp9KDYEdi?4(fAhGOmwSs z@;dAz_~3BErUmU%*^qpKkcs|3AMp4F`mgc7NSRdy&B)ayXS4Rb6t^$PWYN`$PP29_ zex|BmwC->d{ib4a2%vGd8%Xa0N+%$+pe%qmA^P~0Z@00l!JYmYs>ztj_Ws9|#&hjg z08x74YoCu+8Huar^e{~FMxO6gTlfxG&-GK1FTtpQVzU!m5R?<Im}uWBVqo&J#+Q z|7&D_hktKltQgokcknYez~}T(HOQ^ge}@>So58%1JNYy(aK2@YR&89XbqPO{y(LAf zcC>2xE~iyu-Uw~4N)T9Hfd8h~sw7fIQ25f7_1L;R0A_2oKHz7>p_T={wtBQ`ZjHpf zc_Tabss)*L`cEjk0nUvwYxg#7XMsoZ`B*i5ylUJds{!~ukJokw5#&+ku2=;mtPx(q zu_83VouvVYtNXFy5K_t#Pv7;NCVbf{;MQ7|XOwg^`~f!~VMp*b@&j7y&_dgDH!d$_$kRYoZVmh9S!yeSVs4Nz_3pLTro6oPQ%Yw0CmSY{k?Y$F<**e)6d}* z3Mgr69~jS?FA{cKv6^$jDh(lxo>CIQ!&idT?egyxSEbc>daqAtarlSvm~x~7i+e)Z zVcNc;ziez3A7I+vg7?ScLkmZ%^6nn8R||4*_hrtK$8O?hBDREoDw3`S*T)h#r5$g8 zA-tC|a-VX+{CbMF^?AIon14pHLt+P`J)f2#b`klRvDm@TgKnD%Pd%1Gu}V*n!rs_% z9DeiyL09)%+=T}Yxg8Ap1%la;%}y_|={UTw)YPf5B!@TGkm0T1bXK7yVI@uRQDsPP zZ>)~*YpGJd_@R87dzaP|bc3fa*4?+07prp>$_?Yk+-i>GWLN&ohN`P{SaUJT?ngl1sVm%gM+*KI~uFxMTjavnzh?LyaV>sAW)pA zeB1Y=J1f3mG%OpP)5;h;wQL-W{E~?V_tXo#|L1E+qbDz};j%s-pjCA+{PSs2Zt-At zKUS>_7To?)o6NV-;I3VUbb05%*8;GJ+Q3Ze1d}hw7Qd@5leXiN?Nqw)&qPKCm_eTD zpQH(1tRVbM3CMR9?e*k^9am?05DRQJCjvjv)j8lO#W9QH=CgzheEkH+D{GGtFpp^~ zc_X)h|7yONx!7;_rPbSQzrGc>AS8m7t-kP1Os-EkS``g>ru0$DDV1pZ_~oanm1U|6FxO6mV6%4P zd|C=+q!XN`&(Q@1FQ)Ig=Z&yn;mAeXUf`$Z5tjAhrJO=CPP62)nv$^N=?q8o!3>TA zh$X=(C@^3Jpbw@%fdNZvtwsXFJKpjLxS!G(yyzo)n?Amex&zW`?Xi97;507N({9IUO6ZzDalgAFow-0wWlB+laPq+rBQs)6=(6nypC- z04LQB!g2u;w0j$RRfQG+#{EgOb=UUkNT?Gf9UjlbH4>?C zhGo-zJmgtE_Mj1~pAh25jSbsJlR|#^@K#Bm&@HpzjjmISMAj!W;=1-!K{c;LhH!jH zC{&ZD{Xguz_gfTa+XjpkjX`2GHWZS$4l$yLG?5nd5nOS=HX>a^XDPA-aDfFQDz8C7 zXH;})A}BCa>2(oN$w=>g*RqOIbrDwjcg^N`zW00ogzq?>Hp&ugUS zhso)TWN)rMHGd>WYPyQbAJeu2Bbv~q`qOr>k7;z}kM-K!gA4Bcd;QgNu64aL>E^_E zbJJ{Ach}M8JE+4uFm(<44F}ym2F5bG*38OlgSyN)FTC&iukidGE)DtJT8N6*0RR9N zLGk3UL9RD9t1p)yM#qou8L8gfAt7db0R{MV*L7+jiJ^qDF$5fWdzX8jKaeQuFJ8%AF#3XRNNQyRQkBQ@y>^Br`JxES?Bw@Y6yt%R3Oph>q7cXx!ei&SctfdX{Oh z=QW~gBA$4C`3E%TZ$uttd*bm&il`QR=pk)u4JFDdG>gGbndybb2~Op8Fv2~=PZ<3W zrG|)U65L2)uI&-cF$Gbgzo3$t6E9FSrxTGd*%OzdXU^jOh1x|d{JB=KIWA#Le!di~ zx1IV)YUtfU-OHfHSG%y`NzJd9Z()FWdt|s&m=vw2ORbVd$=JMQ-sK`XSF~Asv$Qrg z-NnzC+8k5do;GS1`{4e0Z*it3=b)~9NDKldWq)^x$xOD*x=kG~+C{Q>Z{49>IW+T- zxBzemPdsqFD>Uid@LW#~bd_0mxsmcl`pR&(&o?kp9AJ((CP5~p6M7wv!xlWI2FJ0~ ze^y|$@$TOaZF94$hJXI7VcjCQ!~D#W@UP&jJ4`CtlF$(!aIkI<|5+ zcp{7dFUSS=HwD8DG4uA*@9{LyBwHw(_UQE$#=IUq0!HrQeZvb{U5nJH?f51s1hT06 za=&ZQHmX9UOeTYA8SuMG`200cF5i)S4zYGaP1N#Kqpbl8ftE z5>JwlbTh}PIlr&(PXVYG#+Z!UpfL$+sTA;g#ZUr(Yd(eU>HCazwf8CWZ-wXN06=_F zaJ(~F93QJbPKB{7({i17N20dI{q6{!X{!f&fG@APJ=gf5h zCvbf!%I05s_H4I+=U^tir}_NykLv;g@p8DQH5mbD+<)Lb=fL}J-GbW=O44|0&zID% z-K$RVX{6D*Z!N(q$R&oHpTX{|uji?Li=QbzD+T9B8%cD553%VC4GNkAo;QYXa*;;s z<~p=Yyk^L5pn=8?zlz~Jo4cYjTk64R?7kEY)}wxsqL^Dlql!#>l<{;a^!Jhxq901n z?z`xSbI$<=bjPc%@5$b=8UxJeBwn*y*SYVr`V&B-^{B02UMuH0Y)3Ph;@J&aoCu@~ z5L4yJk#D2*%n8`=EFyve0grY0H^yAS5Yia4=|33rG-Gn=+vu`g6q|;MC5OdrQmA;l z2DO&gyM=lVnXhL0H8ZSS*ch%_mra>%wMeCL;Y=ofPZeUQZk=?JaDPPIW*TTiP}};u z<8&~#yH|6&-KL#?JYoXk_!l4=fDUim`RhYEDBe(h;p~SuuNNB7(7dN%;<{bma(#m)HOY=}Qg2sas=%b-i;Kz(|u!mKo*dNWVHjh@MrT@J$` zfr^c8)p;rfpPjGJvvQLZVXlP^amC-dF95W91EkGiD0eP=QgGyyeC+2+BOKn%cU3=B z#Kyda-B3}+GDDM&eC)@J%-Tm&L9edKUm!$NjCqHxRy1nr6eJVF(9ZiICc~iyOpbQA ze?t+aK$PvK5~P5?fx5vqf}x#XsG9zGN$0-^WoIofH=7Ud8S`#!Md#pG7hYOI3MAp38F<97;P5CkfcSR%8Jnptvd#Jm! zxzoBuVLP56JUw#Q*emudq0lY4yxL;{?2}h91&#F$wJ%@zS^MJBDCx0L#f~rf>&#Gg z4t>Fz5akbdzf>vTLUG;cBtH%B71pVHit`wf{3WLw-<*3L7mAma^rfkrj2>Z!SY1Rl zIKP#84PDuw%`w7dyT5mTK+O^}CV`4)?+9W=mHsn&F1soIu+F7Hr(S^36iFuJDqzkP z>kIdqj51-;S(s>QS<}7X)1bN%i_kNqb`~sM!PCo*EsG1Y!ej7>Q(Ih6#YWRL^;H?n zU=u=R=AzK_Wtp2P4W||oLr$!7VThetGU8<>F6D_<0xYxEk7rJ(qJdj}%0na`D_+%A zl`tx@m?Mqv448ACrf8;_IE?96xV7j25u%=qXfr0apzJV2Vk(aEabw%#^EW57&bpu@ zw?*^yk14|@28__WL-3qAuJ68lEltocjI{^HSQG8OryE7_wGgL+;qStZWQ6EdBlBQu zKeuH|6=GgErZy(l9`3XQwvt%>eWyss!gV!@155eZs;XZ7!wkOPHj1LpmE%;t?S{kBK<-Ln6-z{-orxLwtpsZ?xS!z#4h!5mZN zz4ac=X&1G4$gMqp7Sne%tte#)x5l4U&wjGaNAJalZZ(Oz$I`XugE4)_h>H0Rw{wC` zSK@U0?XM}fzMA^^Tm90d{r2zQea6PE<*T!w;q}cyZtRC z`*wf1rlVv(!^X<*FYRwga688jh^t;7nNc~JGVJjUFFD_Sl*2h9SKp&rxXmT5J3{UK zyLD*;g&Net3IV^NZm>vl43H{^%jmwbqzSI4ZFPBMdgUxzw|k9-S$bvpzOlU{-1989 za`eUb%ZI0X%OV1mPK5^c`4?=vyHuG!YFUs)#%GbC{a-gI9>t)G0NVHo^Zk31VHF%? z478Ti`RTie`NM|0+{JLj`T*Ctz{D`X+=&HH&VD?~{AoBjR6+ z{9+bWAxfvQu!hg-y=mN~>jQqnHmg+&LvW-EcoFrVCGnkn!zYbUK#I=XTwsBH$odjH zY_mQ@iQE{o<#NLGsWvsAnOXlVGOYXC-UQ0N|LgSVDNKGmTXRKkG8qy5cGNIospL-= zJOR!#pCM{>$Ezzw=-_xU2)>{ zFP9Sn^WMgAbka#ho6vPX?a#L#39S1p$#O+4%feF6;h%S&sjQRL#@a~5prlys&t0c4 zqJB0VQHZ(QaUz4t=OsC#f@T8oZ%RU}h(cF9PO~_Z^c$=+?#2k7JDSh)dO zu@Fo|B!E2mK@MH1%BX;3q7x~A{g%h@S{*P$!7t^`9lqME&$Rv8q=@C$&1e)i+ z+7e$LQsn{7B0uOZd?yvBdHTEG1$SJ(?|i_hxGTaLgX$sL%9Cewe*ur|lPL_t566i9 z{M7?0eTY(=C=dq710U;oe(sJZA#Wn?gX-?XLp|=DfpL155`)0q4`adeAGA#CF(jUst7|H2cci76&uKprLsX;hDlTBa3EZck z7WWi)GS-c!P^ygLs2#a*m@4r-7ih*S`-Li(mUPo2q$>)kxFrgfM*hTzABK7sjuyyg zJKg~|Gu=9sd<~8_F55*{BeW-<;A>3YX2|E$cV!D$wOm&*i>c^Tqw*1vcuC&$wud4e z`K-}MX>w?m3pC3JH52?&S561Iy6nTqJVHg3#?&G3nlk`JOa0 zsENp+V%_g-6^fc*^gVgj;!~&E9_za`>%jt*DI4#2Fk0Ea0Mf@=5j7gjhWFHPV5{hG z^m9FU#mrKI%N(O8yHd#rct&*dIL8T|UV$?@;+Cu8s#}0WNs_45q>@*c6CYJfWCl1K zjO1AhCi>E#K#wrR;nFa4#4}fA64HI~h|?=EMiuR5&yVSjdF9AAD7f2U)vj#HN&uAx zT8H~u`W3dD7L;Yuc{@39u~xCcG(Az*^z_u;kkegYoI_;jiD_{}tf*UE_SE(+J| zqUV^dWY&+mw^+MRdUWJMaVjm0_snU}5sk4VplRA2gWq z3XO~&*Y8m`T(?b9IPAU_NE%lW&8w=HdVTrsIe7;GogS)KPFSHPg)fZ4pRYTY%gDUiBYVF=MdpmMTXOwzx8qS?6&8#^ z!y6eBeP`nSMSS>;{y`aT-)}zWJamk>tNd@o9m=4s?Te>9?<`v(bLQ!O+WHQ^tBCQm zUP)_GL+Da1uSE0#73X`OIW;j`$B*V~79We^4Ry^mduwxh?A*Rbn~fD_ufLj3LW)ml zO4HJrzj$4w0G-~%Fo{_rv+L}F_giITgj*XKdu7f{`4n&zc|hHD(WHifKaJy>U^Csda5tYQA1NT=lBi5nj@7`x7M*r+0N zuEQI}xW!YS&kf4yPpP=D;WW?%uUfwTz$+v4I0g)eD0r-*hpK*-(auM_9>aSzXeA3{ z9__`>sLM&}Yn5hO7wf9!Py%e`;l6fhLEbBeW*YzOx)-=zBEl73YnA z)a~6d9Qf?IRt;WI;M)k3Qfox%>27qwF|I71duPxC-m{{LvQ(H@nxD;D*2 zC%*lwr`uW0%uW0T8Y?ZCrlmkMdw6pTVQPHs3|*x$MOQH#%+DUz8 z^4mfYVU&X%y~;dh@|)l|eZ#?!4mC0P-JwW>Nlpd5cBR1l499h1(|vjc{FyokyDwni zw$iItoM;7v?3pWJ*(NsK5#>V25Z?q_14KuIN)BukC3n-cmuHHvDr!u2F#r?LuIhk31{U}pXBKElq7 zeGRr0BhPh`W$BsN8wS19`STED9_y!?3=5+_o;#-m^!s2}8{y>qY{IvTzIAl^aM<{0 zn}E1X{dP+eeQmeC|2&a=<8S2Hm)vRcJa{72WwUZhL@W!UVKxa zt3K9kSl>UR*D*cc z)f@zwtPGnL%Wy)SmtOg+S$LzU4U({i2Uj$U{Y2O54*THBxv*1GDpY4`YO8z9dy}w*O<7W8vE%DcE0@n*bp_gO&`zn8cXcvL9DL0Y;ot(B*{%mKq%rvul&ymYZWJYX8GD&rEK*49`Tcvc; ztb5Hh4bCZy%dJO)pFX;8)e$|@4F{w!a^S7jlD;W2zz*a3!ilH~8&`|IcoPxYVRmtE zoxdK!xUG-w_Z-Clz>R_vltFvxr6#0ePj$nm&vVh=lS|i~s81zTYd@<8Js@{xZ(Hwe zi*Y?8M(0yE#>ii6LJW1QCG&Ym*Wa?_fUy7TTzo1y=CRZ$Mkv9?#9jQXD+w#6yh=Ee z)>tfyy;4C_r$OgCIOO@T=2rh|v1yDin0dZ22DtIN z>AI;ic@!Kg|MYQz$7?SiF5GuJw_CJ%3tB%F`00v3H0}OPiSKNw&nOwtxQSQxm=wTx zsX-*~;aDu+9NTPx^)!5)^&-jDtn8E@PRb!KHko6Ar`nD|mhT0kk6KG?ru_S}sUOsX z=K;y?!^Ul+FOrpRkC~<^q<#RQTl;lOuO&8`O18MmX}JL)uJ5oC6|_g|J#RnrtTfFH z^WiWT8w$Ujw{hPi%`ybp2LT0 zWOu%H@!&P#^vK5A<$E)GJ6}e|c1a?uYZEA6&C@sDbh7QY8~U{$B1-ELs9e^ru$Jo? z-^=xX1tZ;Va%8dk`H!i+v+kazFRSyA_f3dxm?y&q=V zrTN&(WeVY-ti#In6we4mn_(m;%c-!AGoGXA(KBa&Z@hF&?aZ43wZ#%em@HuKaNG6M z+4j|rnW?09`zzOFh20y!AT5@qC6ccryy0&?b)0GgkZ}{5a|}H60o2`PE5py!<`mE- zfYH>-x=XqAR1)ChC0=V4dK1ao?8?4FeD67g^34eMR*|n}k?TMaZ#d~vwA;D;@3|TI z(H`(lQWmC%i;A^5caW}>8c<@XKhi>w9=356F2M?I~~yT=4Z2 znsW~kT7^CTxXO2L>H^KQwj9!&~NnB}CPU1F2VHlClabmiK~ zRUuwvC2Hk0Sn=8EohfaI7IsHoc7B%`oF3w4I1zT1(C&EkD5J3bRm|)3-o9wPgGBEE z0&05?BP=F@A(gxcHDP%@y}LY>pV`QAMe3H-8wt}$|uy_#feNmEiu^VZ3tQ+2Kd8HqqsU+)>Q4(DN+WT zsR&H)y5qw0xo%>0fJftu!JLdNDquki2O%R3wH0t#TlzHrQW1sbPSg;d-Wok^@;%hTgP zUA9vRMzNsgYX+;nDZm|jtz5*H7=uo&B7Z`!k?yBRuzIgUbY7+`s_Amwd`omdz0-9z zgJ}#J!s=t}_L`$I}|ox*1;4`-oA$MLz+%9igH@FGevZ0NCjgRRA<}f*4{w+mJ}L zLAT|_ju^3MHajB=k~nWIj;AZ;Zz48RcM;Ee&N(kf=c>Nt>1k7Q(lRxvc~G1wW&gMY zvNplz0VPsB#J<1ExfYoZSc(QSsC{%i>)Rq#D76~j^gCTrEHOhvNJ*CiFT5K{@BTYJ zK1TG6;eX_;v+qH}`=7VIJkFbu=leG8oS45MT88FaLPF@RwP);p!d!W>y6J}vniR-Lc2Ygbts+hC)8{vN4$D!4 z0^zlDAV~wU7?|)+6DkRmu`#LymHu%AM$v;o0{5BVIgcEPu5OlI>{OV0x6sYX?4LMD18!b9h0p`=vRa}$T8 z^?RVCV5fZ<@fxZA64}l$aS>N?6W+OMa7^s}7*(Tdr`VR2Z>pw6-aRjMqG< z2+QtY!=I%w!1uVdKIAdz6A^cxd8bkIdUk=aIhsnn#r2NS6|0)E{ zTTR72peieV8*mPnAYclcT0WaH?N@Q3s66%ut0vLS*=_d-H*vi{G)RC60|EZiny8Z&bfH)2aA?FA$U{**kj3|#IZ6X^c zze71_^Z~Qr0R>+^4U7W5Kp~?GCEO1Z(~|IKQHkU#dLgg{lHw6>|u-e9(@AdwA@(7yq z4Dlacu|L=gcn0@{m(JawTVX!VY5_ukepPb0E522$_=Mee;!^J1GX^MH8Z-j{M1(jK z#SubKSR`LFNLdPFxRPu7HHl{}>`#y9iS`-sGF;fx{2xVy%Dp02X2kAhXnD^>*vlZ+ ze)(`4q1P>a?w5ogvo9fqAHzq{5=z}j>6?XbwYuhKU8GQ)#73(>fEQ5Um7Ek`90Y_K!l zxGLztR^T&t5J;6q>(*3FK^nRh*bpAqRcc(={fv+sqOsL3;wolb7V}P*$dsnv^aC}= zm;eOV&*+Y$MzK9EG!b_J|K%}5b>q&(%dNU#0?#@k9))yonYQV)OlLbD6ab8ypDB~D zaN_AHt>OcCl=5UNh`CPUQCqtz|IWFFn1A8+C@aGmmzas5E7YURVa^L|G8?`K9{~@i z#$8-Etv1HyYEh#!y9ZJf4)(7xq-jY}BCP82^RwHdd$piFK@Lz9-)?nx*WWonuIb3a zR6Ew;z&F99^+n@rd@7;jdvZ%5h0UB1?gJ@0@R_bpFizKy_&8Av^uTpSNSwpfvp467&GxQW^)biFGf2}WTJ|zmPPJkA z2_TQcDt5i7>9wJ^;Y6C7BWBYSUG`#GZY?ruj>$?8;E`@82i8@)i#y4^Oj_FlN-luW zY_STx7d7c=BybV0!X_e+F!!2K%zg&T7Q8&u{3xvL1SI-O21L<{AJtUSPT{R%yF@WE zi`+~OkOC1Veb#zlby6~^0L1N-m4O)u=3xK*7WPRg`F;-(cqLRxpwu;quFP49I|ZUP zu3;+kPLIf-oYD^@R8vTxta`j~5hsxW##qJ&)E0J1`w5j?syuDrhCmdHjn9w)@7JS` zNWqEFvG>pt9zPzKd@kZwWOthOWG@+T3iHr4B7n1LB`tMg3kpwxWMCTfXAP;Ob7YeP z)|RSyH|%jaT^(8THUZ{qJo;G&)2!d0IGRCf!(n)sR(-+q9>+C=6S2kYbYKk9kV1wG z&i4S9?hPE_HL2auP;%vFSMdgHyo^8EgXfY1aC$OwRRM03Pcn;sAipMbk$c8nG+Gl%! zJ!Xr|`p9KY_QG8t89HheKN_XwZTU+(%Bn49CZIz+=Ettn9SIiLbA}vax%a00q@`mG z1)_^&K;0o?T_J6UfaVOqxnQ&AUHiEl;Ln}IX6@xNxx$lJR9^eeCPocx3k0Iza>_2H z(t6B$t;5_QFE$tJ>!mC8UXM9q>-mRsbI7&XGY-lHIV9f>OLIGyoKi0O4;SF+!|{qM z^QhY{otY9cz=}0oV{{8 z(uC5;sbKF;5gd_fD+YnW+iE$TLO?Lg9{3N} zDrKEZtjV<3;2dTRFO$3Qw2JC5-vHJy2zB2fUc=?X21bN)L3@4s|5d!@k17``xw6miaL%K0 zEm@--^lje8m}%gd*kgU|5+a%#Mrb69*1B3hjx%%J0e|zA+J@DTi_-_yVw+H^)1ONZ*fssI5<9}7{ zQmB2o3_on&|4Q5bKMJ>x-;Hn`WZNu3;Wj%)4kV|!Mc2*r50V40jR8$mBHRbQ$bA%`aA{ktj#%cjC9H7I1-Qhp-HuJQB)Y;NNA5?G*qc@1Z z)4I5d<5)$(Wu!wgD`IBk%S*EZHxF5nT_Os?QW0E8Itd3iKd>A|kb58IPb{EyX)}{# zz>B+RT)U-i2Q4iNDInuCjR-hc1;VyUDsXE6Cn2ZWCSV_F#2V%rU56Hn$bfoC)MlyM zLMMtp39_|Bs+1f6+jxsqD3?qQaIpN}fx-M?n%?0hORHpds%^zoFgqId!k(<*HBw=m zJ64_o8^=}=CnKNukI3!~^k*7r&}gYkrKnZT&BaeE;d(hVfl?Q?;<8pOWvRNYDs8~g zUTZR;y}R@U$L6#VA)iJ@nYX=E>9G_`j><~axo)E7%)V=??d z+Q1x^Z;w3;xoY578`X_aOf3HdW^)2tm*1YLM*CZVO=orFB8HbBUpZ2NNy%FiQ%y`d>Pm~F2X z*1~~>$r?81fr$a=l%?&j9?eCaYEy*!b8y%x|D+eh?4E*SIuWP}>9pkAt!2hZUfRPiKM+VQIL8#tFcLv17`Y?j=6 zZ9#8z8CWxODeiPIyHn)Vapu@x-b3*skSD%2kff3ajCeu7ehsOepLxOnC7W7HblN~O z9B(zK#XP+t@{|OL7nW|Su4F>df@b<8Sd5PJNdUzSNn5%?=Gt2jz_q@5k!dv*EdCzN z$+u)NbIiTi=;(mX>>lS$VOxv&^ONmlNqWBDWBUA4Q4E$xGd7$yc9dp}DyxoUfzP)B zU>goJ-bCUpLI=a&ovfb%Gfo&=v5z4wwHQn z!H-nt#L)&9uyKtNGiRhmrm^e4!eKUw5fUW=_cD_dLsf%>KERlBTGVr}N}XT^_oToX z9Na2(Fn97mpk^xmKJg_S=(kbxhsCpy<{m?JP`l)5yB3(Y=I@D~!lf>7xa6R)rDit| z*omrmkQbD-lLF)g()~ocQ|g0AlZ=Xvb*6u2c(4!RAi2?n(m?5U``LpUm1Js|0Pk?Z zxZeo7BVt)@lX_=2QfMM}mg?AmbQh^XXQf4jn2PHlt9Oj~RMpep)VPYlcxMlVX;SgX zKc=!mrns8PHvm~%yQG-5jnOu%DnSdITRyMV2ez@=ogoz=qdPma@fl9Y(PdCJ*ywIU zrge;YeX8E*wxibM%i!8FYvDl0rBfR)c%*8kCr92*`BnJw!|DFy=h>~Z&K&)sV^q44 zz8yY2bM@VnXMA{ZwDfjLgSu7b=+?RxbdMca)-iJ)E7Z7?Qh3P7JmfROF`XuaJO zz>{)tahfU6qUBDIcop~!JV&hC%9*AWQx?Ay@`pf?wjE}X$5r86+RCfQ13R1+$KP)8 zhuEqW+ohLoiG~=4;1R4^UNs%;_*$IbaLG8*VU|Lf;APt>OEl*PRA5M1oNy68<3A`z zEZm6ctvc$|yVY)N8@nJ$-|TWG&mk2ZAw*xcX-vk=Jp&b6E3I4+FbreP5y}!}P_aGK zDmKPX1QLTFgMA40abWw`(g!Bqm7r&75_!%R3LPO=Zb*g%(fJo`?=GFN7csR# z4pb#INR#mTxw3;!V>-*Lc{m#+N#cPxZjsdby_@o$oqAgIZ z`vaQ!VeBOs)@dA_(0fK-@$Bdqn&wbS!m)B;-D$*;jTy*7Ft7DqB88fgf`dv+;^*mNist_M!>5~%7g z3ggMI?=Z4Zb`lNpL>?ALY|{dZwPHGrc5IoZHEx>Jpt15n7aU~n=PN#yodw|Hjz}(% zem2&liY=;oS@E#!D^GSX%61bJ`d|?117+yz!(gfKWOD=y*ZW6_Em1fS-aEDTJ z$XK5~AR@TvrW7K%EwV#2u6myc@8|EJK#>Q4&TeXO%D|&}WTgKdkUF6CAM=ss!% z8LeV69bUzpON}qQm*+csrK_4nV?q}U{QE&aSj=x2J%5odH*8!dq7Za_tMQpz5RMP~ zQv9m$NCG9tO(2y4FVNtet8jk*9y|~o$Cc?UIA>OqJbC8|<)5i8N6?U86vDEyDV zVrCNtQh75eC^`7=kiVUyU$@{s?aL~QzkepLT#a^UN#lx!eU9A%+(BEKT~qwpJsw_W z{~(qf6X8`Ye(vB}jRyHzl>N{i0I6ybb2IOs{ywIRSb$T?M5-^j=z}0d!mt3CF_$WA zkV1}UrFW({JXc+PDo$EZetbh*K`uVzNZ+!V@~vPCbvGC2s^zEp4p5Dp;(_aU}4iM=0^*dwIm_Tm8{?V*y(wa2@Jaxyfev>O6t-4&V0q}is z&Sz`$KB1N9N zdVow-V+YO3A4#R=`p2LO+E=s--JnLCdVsgvKN;f*Mp92c3xIqDyRz^A8pcwPMVqv zeCCI{gE8@IB?gUjUFgE3n_5Xa++N-(ly#q5)9!xqN}{cFZx_PTI96^F_SQFg5O+s z)~;p|pDEY_LNpUG{v~MaT|9zBVKQ5{4X(K zy0rejD}^ebV&3BvZKppLo8dmN>sHEGVZ^Y|G=YyM_pWgmC3*R=N?WP=v?yETl1m>mr_-S8%4 z{!9eQm-1yYnYNnMh+RvT7k%CCUe`_)gMoam;{PBUJjDLHdoDjWF6TGA?tRgIUmG|K zQBDOb!XpC?#1CdNjiPB`TlUu!Z8!Wn&0@HGZ}{n(L_zOpEcgWcDLpXiHa2dIjpzCV z%*T=g2eI)q;7$ESPF0ap#X9Bl5!m=esWR;*GJl^8J{vLp5j^DfyxO@3C|Fk5Z2hLlKmdTMfw)%Ff4;XA1;30+{ZATA0@sZ- zPN_-8+?N`aov*K6Utxd#dTS)`En zcG@t1KDd!_pdorp?M2qfHj|fnhk}QSeGFcFeJ2nVK%;$Vfm=8>p0m-~`4U;_TfVOD z^K1yXNE|LK-1Z?(6S9oYsvNKT0phCDadS2A%06ITi4%l?h;98_;3eILTP;(g#hlId zGk<_nO}UYEp=4z*WnTMv{aZ@&?jWB)D>e4O7antLF#S|=BL1!O`5;XH>7z4=i2Pj$ zSY!Il(r$}8jmg%3R@Zw(DmtEkr+qabsye|}j3pIk&If(EMD9HgtjuHB`0412nOGZ~ zkbeS3XXH@DwzHkI-4=+pH33 zM8$W>y}w6{hCr2X)jctqrl926kO$E6vws*)-iLlY0A4pe3!I)MrVacJ!BAjG+7RFB zlVk++tP+OJ?<20AcMzJ_)r7k3qT2NiT~TZbX{oDO1pKy($cBLPh7++-;M2wV<%2ad zoobqUjQ6O9b-Xg#4`jkG*&D4*?nTME;Meu?{B=~r#*rPjp1Kg#wV!9@Gb$JD)1(@k z;HYK0@*`>q8n&?3pixKtqNU-7htHhYC1<)@umV0EU-Xdlv%3(PH-;D}NGgFp9NsMY z70AchoM^-%8}YKcA(gEK(l!ck?+dKizA9il9i;xYs0P`{YFf z^EUNuxK6hX=u#LfdPU@tuZPlrc6&3Vm$QmDRN(>t54y5ZLz;!Y6WmBb*fV*FtJqUY z$+hmWEH#0={eV9`3jE!5v=9Metcv@k+?X|dN*bv*mxOBx2a6K^kcSJEyu5fI>=rj< z%RDLnjkSYWkXrfI*6{4Z{R0dZp7;9MvJnC;U_iS@nC-NVEP{M~`k{}65h#_Qr9VHt z%DaORNZ(N``VAd{w7j;u^FI=|q_y^MI_sGu zK$1puT%cp5EdD1zFHUAm(;~8!DbI^^oT~qkx=my~FM90j_>a_0lJ@-cFOCp^)-$Go z53bA5ISJ~49IqWOes+ey5jtSDjcE)=<5|J$T@GGaw(78YG zKq7sRN!YQ%w_B8G<1%5R-wWc`o05R3X&{seACCjRR$2@ZTOr6IPNT+jDFrD z(#3nb2*iAAai#}e2{{ilM?j4yJj{;SlA978WP<*`ObDHl#Mi+=n_R_&cJ(e*LG{)n->6(Cp{*qXQp#y~BA@LYp8Sv3>4$4YjkG@`2 zX@c?|t_2jI$*2(hz00#_!^MtkFxRMRC#qzStJ9Rs4mzBT)+3d(9G%hQp|PyU5evd( z)18Atks1i$80gM`Qm~imb9U(FBmRG!UdsjHW;zuMF+8Gxn{ABpkI@o4e(#|YdyvTa zonD*&kS4AAf}%9F>H)QJC?|tC)ha5`Kfl97gE>9qw;%HmCL;dvKbwsHhYR3M=bJTp zjPObi)@!TE(T1*+BJF_U7(>N}s;PoYn*Rp&6)O0yWG$ zg}mODvlgv>A1r|NdYsTay{>BJ!2+LZILTYZ#zXfJYse#(lKk5=()0v~UqLYeo6?z#{qi!baLY?=IV^#2vlVd`c9qc8NBN`b8m zLFqoCtVB?%d6h#ugEfA=>0tv=zoe;p=RRWBK`j}XwKeNZwX0u^E|aR|7Suwyn=c@< zvvdWZE&0ai?{SOKH{}X&r&+j4gZ3*6vBNLP$y|8;G}A!pW0n@r8PMXn23kC)LW}1D zSN@jOCG#XYMca4n38LhgaMdoe|IO+9%}@-K2#tEM$o4v@{Ko$6n>MLpi?k+{f!cH# zyUr$n;tu)>bY4~EiZ*V|gZma`xhEd@k9uyhE>N4xVkhnd6|=-dSo*PN`XLD9xOq*& zRkbEO5!QAAf>M`w>o5E4yGyGOEky1z7nZNsrMdtr`zO-0K!%9Vt?O}-nVJ1fR_0Z? z0`%0`gn&PMzJ1R;?^{R6T#$IK)lrZs^8@bExPE~C_L>s~8aiK-RZpF_xBJp=-qszb z=^EE6+DMPKISW_pI*O$QRVO&3nY+v$P&>4WE6;+arYT9{34Qv)XtYmSkIw=)i5x&P zVbKX}moAodDEINBsr(mrKbkb~tkaldAgLbeDe3{=-;sE&Wg&pv0HLiPkSSJq@unk&N*O=e_SCvWJ0Y)#-7%hP*m0y;%* zVFwBQk7q6;A6ueP_Za{@~+gz}U|7ndb zLQ;bb=fhIR1y07qhN$OhX7R626?Ta6Dj3G*EoqSV?l8wDZBC#W-#pzF<$r)2(gMHO zm=m=luN=|l)hw7WYgwGivld@a0Z3Eh{poku|D<7kg$oWE$jrK~1|5~~?x}WB4$PeC zRSVru;b2zUN*%B`Z)cig_r1aq7cm^TKI|jbF}mz%o!oJJI)L`$wUS=YV(yCKK%2(I z7tsqM%(!W?sO=rmkF-ecGc&j`6oG{zn_hv77=<8JOZ!Lq#<9VzAQM;yKKikS(5J?($1#Lwe{kV?|+Y=yePmr^=F zy%*i1BLjgO3_FNdxK-yAXrekyGl%wpuu7_t+sE7qcl--jqmbR7%$*>ZlQ1};AOvey zvF!~-Mm<=%r}_A}KtE>Bo@_?k5YczEAh>rB9~+ugcWX*A z1Fh*`U_h(Lo(FCM`l6HM&8mY^2TP2hW@Jg0GRp7u?b{-~7w>S;j2Co>P9PiDECR=I zitrAk4J0tQ=Xp(kK@bKrZQwPm#qo%y1s2KpSk-dv6nJ3Fk_NY0v=c~33SFJIu$*HZ zzW&e|*!aJ213fgr7lJS!W8)6^I#Aln)AgS^1{%y3-@akGeEr){H^R2Zw=Y8)jFkq# z34DIwC5_^u=pclt6o-_9V9XsgNMi=HI*U76O}vjo$xiB`?_lLJ*@rBP67yC^~`icTdBV(wZzg6$MiDD}`#N(Pt`Us5O! zsNM>w0xPG5!F9{w*b*+{iqB=R_bmp`1K@^b%zD}#^k@^Qln3PJWMRhZg=YxF#tl-9 zr9(Wg7xZuLQ`rfv>K@lYuGW=|_`~8BZQ#Ci@(=tWk>r0o+UTA_nxqXxED4h9IN9dAa!IrXr)MGm3aiKPD3<@2qiu-z~57t&G6C2BywjK8NKe4CJ2GGyboeruLU9Va^Priac*>(EByDTU74ZKuejm`&8k7O~O zw2N=Be)P;FYcwboVajEjMc&{@zQ^m2UtHD($UXCrO4FQFzHI!T9xFm&(>FY?0?FuQ zwlM}S6rC(SXnyD4e#Yi=K-k6iQIzwBvxfWnc-DhQ8+(t2vIHyM z#gQf1Wc!{q8rtnoZN2#B#F1t{*b_K)2bX?jRjh!7ck<>$Z0I);Tk%9SPu`d3(1OIf`iSzP zgC1*gTswSKbvM?!iMuwc50O#=5O#8fjG2COLT3tmQmKy5$hz z^}CJMuS!o7?#=JUG>bO8{=yqs^6FhK&-(qLY$nm)apvZrhN?_fO68lFa19DU`Heii z{6~Qc&cjzio@Nf({=vB0CJNUqD*h5q*D0-g6fDJXtG)W=wz+{e4^RI6y0%>{qMVJr zdA^6IuW9dKbvt*CX@aba!=B!$w}WK`PDe&9Ac~1*(en8fntPo0>;Ts4+j)*nhraWP zZ?s&++cPNFxKdjok9Nq`ECSJI@i^3Wss0WarkkzB5HXDj@tWI3;V{BF5Kg2YoPM|L zN8XlNr>umTaGTAM)7lO#Zx1#zAv3mu+g(>Qhe<@Wy)wAe|7d2g!4)-V^NmI8@4B)N z%4se5>Ml3Z!+YcdU)pG9U>LImhc8d>+$I=Pe4GiJE-+`l_6Hey}lC>TvV~SC_fdh8%Opg)X9R+;oES;$dVXgZd z0VPY6H0CXl0>pg8m|joE#Qo~e(dr=`D%dCvkQXk#J-Jhq!CbkEE^-*RHh`pN>})!z zCn0KvsvE;+w)Ct%ir>J0XQ}wiRs0nG`{Rk%_JR+>vTcItPgRWS^}gUpt{BP^Fse7u z|D&KWvrJpBR&cuK%;*AFj!H+^501$i-OG#MH81&Kc$mg+z?&jy`~a?GhQC;!17D(A z@_{+M8r|(cgyl!yR~~L4hFqU*ct9P1ua7aOO~P3l-~%<%NP~<(1@9}sr-zS}H5+6w zuYh+%>EC{2G5n|9dnSMbnXZoiQ3vxkLx=SZ8r*bU?b|NV-0;FLNwIMbAzSLdqjy5B zAW6Ctoe#xxi5U3YSA!|79QzwFG`x&d#E5>BMk7S(CtSn}wez8B@cFq`&{O?F`zZX0 zmK)lE*GZFJm%1D12te+S8o^QRO7%BTRJ>^dwY_(y0dCwB8N&CoV6O;>(*vrHnE4D@ zbYEFhn?TKLz&FNFb{^dwpm9@5{vxw9I%(Gt`eSJlD7A-a>-_A`Nz+q(>GN~N1!vBV zFGkXo@)a`5ukMaQLLLo^;j95paP6EbuD)o==n5c4QMMC~t#%QA^c$P^=7EBE?hmW4 z9Ts;n3?I=&TXj40*MU%_W;k~sQku=9feZzqDL(e-|HIy!zeREF z@1mNh#O*+giL(&Dw#`nWqCkVl6g7dg*bv16nG^+OXa)fRktvEw5)rh^fOa#8plC75 zJP9IEtSF#jGfzqj3N~mXU^AY#I(whz+&|zv_qq4UFG^LdTD8{d8rJ%J-hoVACm&== z1S7!D=O2IIak%v}S*qfk%nWaa-;?Ra*X&GVs=e*8;iCmElg`1s^*6XL`f-Y{*5nK>E#<=;&g)!VGKt$H{betHrzr&5{t0 z%26{63p8;%s|(cUM4!J!=V#F7YR%S6DaV$%myo4XwID|eXLpvm2m%?EWnWT%YY)RU z)!}JGv!h*>8lk37QIm?$Nrk7ezo)kyFTr3a#geB{%?{u<+M#jD z(v~MkXshrBTC`7>g+1nl2KL;#EOd(EZS)XnN9EGhEjG!H99m!4b}PfL%xf3V(}kB{ zG`@|qDS{oFw_wenN56OVQ%Sc+{JXivLbPW`(7t;`qB56}a5smA01{|-j=xwY!aC(X zx5Fg`U2ZL?8GX<$u{vV(<*c43PK_#YfpwQv9LkbBe7w1W!sV_GUo37);7;)bs*wku zm1xjP0(VCzh-MlHCel~|kx6vcI{8&bLKRQzBUa&g>`;>{aSJ#(&~5kRP6Y~VtD)1u z4c$RTHbM7u%2isAa(K*^Wl8JRJN5MO+2T!g>;RX} zKPot9*fza<9}398BPOiX=Ncq}?|?O=aqWx1LTIDrI)D+kC9c8`1|4 zGVSmXOqff{&+Kl$C^=B4|I18c7g-}|xA`o4aF@)Be0!KFvk@FLJ45W+DXXZ_|8f?} z45}5oqndch^iMg_7Z10*eOL4uJ1w*S+0^(uYHJR4q`Yh@l(^&dt7`5I%J2ZQ;y{w? z2co^vuie-9GQ|DUsVFzlucmebP4~Ic5ygahBb=99WDgZ`PpLCT8R&eIDoJ2E=(qnXqKV)#8ZR=Q*2GN#(hEW(Xv zn9O~E1S~bSkC?o(Mg(`V+61v=67v-ZAiK-D8YG4pxzRx2DZh8r-Yb4X3}2^gt}$Bl zCDd3uHTDP2$(_tip%PHnb%oS#gQPrzjz*epAx^OrTYF?aXLaMlMr|#DiaHfqN=-$y zi~%+&&6V7OWV>QE7?2VZtFvmYArYk?=?`&2YYy!ML6fn;4H zgw$hvn=trB4Zw17Jjf>~12c*dk#ma5i$eZB?+MN;4&(bwLx?)9?^A;F`0Qh34ts5| zc7%vmWDA4vdz{WTdQ!6L27M0mrd(n0)&3IPqsu@%rWW3$#L|#))xF|PqSIm5DZ}=u zutYx3@CJIwc)HbU$)`pPoG-K0GbnTLd$a#iu465ZqR9Ied=yUr|igG*Jv?k zpX1ci73uZuLO#_86M{!Jq_Qg>*tT2%Gx)N>Ja$BL(G-5X`W5Mmp0VaVSgdoP`-nMP zTGdpQ%f1cYJqJR%C;Z1n_LI{8$;k_A5O+zsdf}3H|5uG3w(2d)4)XMByO2xtWpXnm6bWPI${^y4WUX0Yoy65-%C8= zzx(+ttk!%8d;E6m7$(=oH0lqJgtpM{0Il_Fzpp3{s^vwLN8GeUzxX;EXkaTX`b%MO z<{TZ*1@)5aXhI6Q*qh5~n(ualc6Q7DMv{Q(wPVm=c{;YJV0pi^`DLq}S6 zl8@5*e0UmX*op3gHC0-HKf+c-F&x1}`<67i+SWHn`KhF_BvbDI8EIO&=7cZL64{8R z?Icza7>JYX12?I`0ywNazN5<&727w)kNyh|YyaOw(Erowe@5V+5%^~W{uzOPM&SPk zBOou00{8pt8QdSX?ft*mor!7Io5)Z8W2*L_|Hhyn$e61AZ?m=k>__VQp3`Rm7kB+^ z-*{MadKB~Wamr1!VdDKTkzYocA-=gJ8Phzdp0eOoec zLa|GXX))C@@|AEG;o-syMGDSq1qZV?fbP^Wi|M1b!UTB)ODX4%cojA5mR*MC18O@7@wc3BOfA$r`Cwduv+*|Q4M0_jS(<) zS4{CCRb<2tZFx;*zZtM;9(p^nkF(QQCWLq!xMreA!`+0@X1G0R)7C^j z?BLR<2qZvjKhr!!nplb}GwAafbbzv6*t+Io${%VAZazE49Y!s7Ox;{9c#ElL1hS_M ziqd<hpPD&3=({n$gWj5QH;XR zSgm>N11>y64@F_vkn@BSXK*0XBjRa1fchf+6bj3Wd!lHuL-M7AZ(~?k-NC3kHF6V{ zlP)4PXC3+ISy-R3nx6=frjV~)`}kKz6(k}bP7dtpan!XxgI=xU@$9}KR>4o8H#kT1 zLrD4@(VqE^iI6bk$X%ESJJwbDMKxq8Rsq$xmc{P}q16umHfs^kD~LBvUodi;W~K47 z-+5zKBC{$D{F(1F+8{CEXV1L5Y2mIMEJlmLQtNxyAo(4O)rg7RN@~`-!&fdm;K_rI zhVffpUpT!yGz#4(h;`=3_ci)OGs`)Bcu-ZRv%`FGf4& z9B>jG<}^J%7RZokgBo9~hx1GUT!4(UI^HmH2YV2lJn!P?irG_Ohi z3vnU%hmrbPXW3b%GLi8gSg)?5!*lBBwjF4 zy_qAIvMTt@=4x`{0CzwYp(U35@@_bq$@DItLDcCfFwf(C z>rl=B0K?2>RS0ZZ2s-&9`Q2a<6!0o|K6NOyU(gAAI~Umjwc;Rzu#9LUvz!bj(pAWl zsgrF?Ov+5A7#kx(3a#97^B&^F`LnaL+!~WrS^KA_it((B2_&aXPfw$+dAf@G5rrq%}87(RwgIL zk#J!uD{S4GySrT^F=92hE6SVsbfa}y?X9^HyJxdETi?+Ig(Bgvo1eIDA$i**aLQB0pwME zXWEch?K_foF%o*Sc3_yGuFekpC0}>hWfo)pcHnYx_BH0D-Q0~>M=P^*5BIPN*jF6E z8<6i5s69Y{sldAB7I)-16ZU<=T3X1~iM;){HCoS8NhNpVF4;$fP5({5@fbbI(`ba~ zq7P)J^m7f?aLLE{&|Qp6l-y?Gz8-r*ErVX(U|->rkjVGp`%Eqq>6aQ*+B3!Oka2p5 zYjAzc1UnQ_+}s-1=%`{E=1-YiTxdX=+qp#)oEM_9We*c=wr>rPn4ooM8zgd=A}|4G zSH0MeKj}qlMzK}-y|D;J;50Mo)~+hVaPG0HU6~*>i)Qi!Fx>M}M0nM7i|vD!TanR) z{MWES!wLQ#lhPd?@y$223)t#hneo~hM3ir|r@re_#D=ePJKR&y0cnMifx>Ms!+6EA zUZ-IT*rKuY8xuYWf-M?y7HV`XVsk^>siQrIRFTLjZT+#FdwdP8T4VRN^+Q0_cUp3i zTYLFuQk^aDW>vfVog8r#v(}q3_6KgvcCG(KuP^rRlqEWE{GKmZ0}(hltIbtclatMi zx!vc;jCioSPK>_G8VRiI^InhzJkFc*Ps#o1L?(;UD@n$A?MZ~+$jwj^gcAL z*u%5*Ad(o!_mE}yiIQj?w*2{J&)=J$_Z3ur6d^D#)W218m|^&JKHh&bnTssh0;y&v z5*zh~Y2`fT6wtozUtY4=(=+*59b3Lxk?Zj4{k(D4RoYKFCnA99P@r9DL(Ylqyo5MO zyyD6m=`hz`j|Uzhtqv3R%pR5chJke4(<@sZd;(dgo+pys9_PD%pUVMJFaUX+4}ng$ z^U8xi!H2*9OlLAvV39Q83Ny6U+|Zp&L#kTtoO#5~(|-MyH7I7%DNk6_N$q-?b9-5U z?VR-9wNGiC{0MtcnS2Z5FbMIHcA96{)5m+}HfI09hyyB;hfKn7Tut8crEr2|=`ndh zp9)qi@@+=uInS8{;CR7m12t)u7L80?y?=K?p82}w`^%!nvNair>7vZE$`I z=1~2!blOGIHdfGb@3Zc*TniW3#NUZZpV)%p+7$asjD_0gOwxnPYgxw~;V>7f_2^FE zmaa!uHg1h*q8|Ck!;FC%sTAgD5hh&B#3E4DYdO6RFrTg$#O(!yJ3$li$KG{sx zFg9;xhMLrtyKpm;b*vC=$IDyy`LCZ2UAb8@GMG&2UwG4WS<=Qk@F}wF$XAOFk-dBY z=2iOys>nzK0AMN9-$J)vNyu_xb~_04kQlZCjgz66t+sHN$*e1ENrlvEoA!NnMU0c} z-?nHzkG>R5oDfJAY_zrXC{E*WV;D|WF<&6M(IoNHT)CZrHb97RB@PxI(cW6m%6bBc zzH$R(n=d!--AR@qZw+6x4LY^%G1s{Jk&140E^{q*J>vK;p6p-9?Rb8EIcBiV{gbQA zL5~|BW}IDK__z(uXWETU-9{>66{z0NB-SW?l9koS+LTE5wR?<8 zT~8R|@qhco<>evZ#{Q>1u%*>qJ#Y2s+b0iu#)6%Ld>&|RFqLujw9w-6we^9Yyl_{~ zZ}*YnuyEow>wpkqbZYX&r7zy&_=ftxZ+qMywVI7a=zRi?TOmsqcE*`M$$Gg_M`tzd zBEA0VqRZ>^G{RG#uX^=a_7%4IP9L|{&%JCc87{Ml;-tl7oWQB-OOaiC<>H?Gy^2x~ zyWUjxV>}>o%V5m!Dtys;$#neUd@^_|{XS}j$W_)fKf&dW|L;tO@Cr+93)2Ee8&y7j zt}#}ksn0dVd0WF%)3Xu|;py%@L#~<$*u_QZ_yg)2?c&We&Fzpd*HiZDJ#1+vFOz@6 z?Rcr!!SBtof)la@Syr>iL6fH0*@$;N;cpU%HCy8nk+LBBoC z|MLsK^ADDBVjSjfc01AB?mi%qxDV*5sRi|REYY!EthajBkKe!j>h`r$t9Pf2YHQw| zF;qTXWLQy^pS#Jo#!mWZLM7UF%e89xWO?sUU~O+n`D7jzNec>&7Km8SLmz{}Z21{JJK?Rk+vok)X4Fm2FM*&kR`NOkNd(jL!QsU=qi7tNlS z1f}gN-JaGr*xMvg-5X@e&f6HkS3VpUF;4Y?alb=LKK=L>J)YKQp5|tvS@|d&54IZP!WVJA{f}-MUX5osem@gdQ z3l<>NN=>=LOpQlK53$h=Bg`AZT1O`B?H+9>^(@7zwV=P%v#{P91QBk!EvgkJYHTpY z0v_L{!(4jXI5bpK)0z$U1viC>nJYmlvh>Kf!~28N$@c20+_R#I452jqe#D(z`~LDj z-GN;zr#klLhGc)t4)YwH-@W)s0i=;McTzop=0H4J&KYS6cXph6q}0b zNnJKwyJ|EjwtyqcKN7yiE518)P%vUI8@_RJjasdDMF4kv{N0@TyB7){d#fg!!b`|( z(}MYdLvf>z80-fdmO0ReHhQjA>*@U2W!Wdse5#~a_Ccy zb=coo5HfxJ#;Kls<^*p+XKh#9!W5}*MIfBNeq6q)@POyHF8kYIu*R<#J;UvYsr2Jt zm|rW6-%=eC*;~ji-29bRmV0M!Pk!|KviX@j8&?#+Sed_VsHOV2=bXl)o_y@+Fx2Zs zfjCx$s4^sfllQ`4FZ-BvftG?#dy5vpF^YTR)B>TtOH}K-4=i)-ue3}_Oq`YKyjO;< zp)GdJUa1xMa8==pTSBMs$#7@3?lBa+)Ub{fP6pNO@@c{$S~|26zLWP^5jZK~`G~K> z@ru!3;i;xpP_cAVS!a-BRoFDBrd3+m+ej0*l^JD*q@H=fj!x(v40E4To$OFqFVJ^G zpO5o$PNuSTkKoTDR-I2SX9vinPhqSU&6T}iEz9Qr=n~k{TCV#bKVcKhgFo8&ajC>QuKzXOOjWO;^$$Z0+6h zu;{C0B_AF91okJgxoIkgTKAoXy;>?4sMeMQtzrgtEiBWcYYm!G7>9=j$sGp1+Y#%O zs^b34jKS&3LK%dABdnR?nF3C(0z*#oTLrV@M5iPZMLLD9yTZoCp9{#(1e6 z(Sh%Q+qEV~VP{b@0?hK?K5GGkB?BseTQ_H_@jwPp_^g#=+9q>(+9Ai2Kd3O25#F;# zi2XW{BY;RpO!aHyZ8@F0sb{$K-*hW z)Oel;h#<6?@H;x@z2|T#)dGjMbn4UkXtJ)A5SJ@zyAW!Zl50;$3$s0rxa`&`4g=P@ zxd1LaZ90=huY(RNY-0w<(6;P+9#CC6Hx3ixQC4x;4y~hF#ZDk z`a}1bxCU?nF#|iRqHSbiDp-}lz46sj+lXE@T|IiHK~v1qb-Le#r^aRH*PE2L#>d>39Csj??fKIw`cz4hqzN|^b{gH(& z86g7e;=MF?ya?N*Eomae_HB>&U^`snw+uR&x#;Bv$>I~)8=_5pjDvnvKi8Pt>O4vY zWpAi1WUD&bEXg;?_mkZ+u+B9{z=ApdW`Wt%cJqd}`1rlY<@Cxp@<>$w6xCisix<{( zwY|(ek#i&wQb(K7&&uU?X(Mq7>CF(As^9hKn!f{I7Wj94sc4_a^!!ZCux)72RTd;< zHPNI3FM;ymqn+DS8{S%^^;zR0t$MUIOx8)x_$BH@6s|I|3*fZ_Zz>Dkk`jnbC197o zxsS0RcGSUkWT(#_;?7-+R_T$W8)~zLooWnkQTv^2F6SLS>yUQabjZY zuY8So0_J-v&AO9CxBQA|546xL2Lv?tRIcFdrKz^a9Q!#-L$kCtoGYhITv2e%WRcux zd0Em>(T8qc{Np-mzUPeBret-hs#l*AEYw6Ppxd=FJsWRuQdK!!wuhXbL7IY*@@@U0 z_+2?=CcFU$jH?t6iS}~+T|bfMS_?AhuRw_S_@O)F*T;pl$tXx{yUwxky!?yzY~;Hr z>29+6x}yHX*brN_fXy3(yNoiG5i(p2o4;4m+#sv^oYx}#8z4`xX-|xp!jKIXG`8e- zK{*?uYrB$Wx#TGGHa_YS2JkezP3Koyf>bt={`!SBtd_uHc=xX0DXW3o1+?F?;||6{xjYoRp;&)zTiXmOy_wqjB{J|Ued5MsNwrm z?ujOb2Q}iYMX&82Z{1V>GS`+l@#FS~4MT^?`x$^Ca(=7xda_n{`j+-B(-}=ghO3oj z#XLc}&a8cEFBavRjlF%aRlzAU1gA_t#}J${KZa9Q{bJemK{ATrlvO(GJieebW5&6| z5%o2jKk9w*w zZ&KO+(~->qWZy>p8FwRYD*u;M_GI0OS-cz$=ay+Y!tpA)|0R{dfUO(GZ_G}GEZkHS z^T#iBo=fH`&$xT)3|MR~UvnEoU+`K~w6baG)9Y*xq1MW4777wfy*5GlKnd9|q32+t6Lk8Xa{BYItD# zH>s@Qqr-s@1LirI&O946PGA;X*kC0O3%~|RJM%%x%?eSF)%vfWKGc5EN|^=l3AUaS+AS&`@VgN5n$rqOS3pW3*8yIuo5jv@&h zImU%|<3RPP2C!%hY!SHKdz@)k0W0>ps!k!C&`bTdXu-Wr-L%3p@9>BxNSA3Gu0Zd^ z^OJ1reQN4bt`gsd9K9U#V}%*GDyE#`*X_;83!x;_ipM=*`1O#FM{7*}4Tc=%8ZCrg z*tw2Am5}`%?F}@Cc`BM3rKV(TL514-0k%54=boib{vHIs)t2X}>_H9Y886Qu1DMxb zf{L`iqqX4GLgv9L%Y*A0MgQn^(8H!ZneC;sLHL$S_G@wbubMM5X1s!h1AR{m+K$+O zzQ!KpxB8sJ8)@KC*ZxX94%fUb5ssQ}z}b0fZ@9aIqOKFer>T;hp1~bNegF}87m_|! zgcW#PzLcA);&W13iwNm(A+RPq8c}av}HgU9sjO{!w}Uv2tR+c)w)y%6t1>3q@K2sMleTa`jzht z;1XzdnUoqs$;vkYQVp9KRH~c6b>ETC3VxrR)?YGkk}6?M9?u=FK{CiF&*N|m_-EXW zAWFf>0;nZ4n_Es0A;-_X%RmXn307`KwAYjDEHs<6vm^pA2V?XASe=Z2Xn=hHJXWtr z#)N{h^q&u;tdU7ENL<^A{*yE5B*8O}??rbk^<`^V-nnf-;N)fv5`8Ja_nXGE6nDz|bzmx0ES| z4@#oYU5nc(EVCy;JUg0(y@l-709)M3=Ddw)sYnmA=EC)5G=6k2&>mqddulOFV+`!Z z-gVs(wQ^wl$57H3n&a5JuX{z58|HO5oe^T>Y2z12@l()8jd8cVuE-R#Y&9{BEop=D z5I1yFwa3R}f^*E8MLwzPS>;Ry(|ez^bqXgsuuSpgmb-lGqVkhZsNhjg(Sk&C*=&o- zIXtWjJw9&l|3cstB7iM}GnO~&n1#ElsZ5GGe)KR>5~K+1E=z2E+s-0}6M4(wVKo`d zcxQjNd{y%4*@-{N&SSxl#g<=kb-*)YSlv0D&q~xOHoq3J zwAn-D8+&saB%fljc+MjuE_RTuYfjFW@97Cz@aL#4IV$>>@SH{`|Lf2TlD7E+RlhhL zUFDL{D++58+BtvgvavR}PG|Ziz67_f%6IkzmCLKShH(-Vi%PBanzL;G@Z)xfoDx|k zM@E#77j2-GG`Boea@9*1T0kI~{%U z5j%IvZX#gpEU?fxzG)5?hJ4jsInI2ahVgj;>vTD^$u7|TSZd(S0H~iv#>G^gT>jIX zrTGbQPSFh#+4AWr4%f`wC+gPM%k?)DP-fhmAimH2NS%Wo0!=c`LmO9q&MIA}>%S0g zDnk87?wcfeN$f&Y=A6IrVC8b~pX1&SmZyezCLUa|4AVz@a+OX5n6JD9Pi$KX>}|-_ z+9X=Ja8NnBYX{fgljo_^-FatYc=xN+?70H{uc`{zI=M%Ozih@tCVMS zZBqrjG;!qYU+CeUHuswFT3(KYpc>VUYZkFzhkHAIr#$xhXIQr-F|Hn8d%C~c)|>( zni{Q(?-u5>>lzWf33Tj#{{iw&L35Pm*5UPPmWyX2q1mv)IdJ#A)k4WZVc9KCpxcq4 z-S^^`>p$*G21xZF^V9Uq-#B5oF4tgYuoYishbJetidQR}^{#LJ##;GLjedoqxo3rC z>%v#c&Hi#XpON*HrCcw`*r6!XGJoU9)KQeVGFRJ07Kb4Y;LG9)7Gxv4x4bQH_~he} zYo~)+IzQ#*+-5h{zO(8SRW8U-b?bCJm_)Z~f><``QQ>IW;3_!J=*s#G&kq|8S-vW4 zD_+MUgG&e$4Z85k)x*1+a(%+)^hVY8l??d;EQhXho_0jW4EqIE@}HpFO%;q%M2gj`Ey=^(2*qVDR&*uVsPQgSDwy&Jw349 z*cj0Lk?dbxgPaMe=bxY|gdaKf$yg%dqrf@rBUE8JHob=kTH$T%;xkQc4VuF%Z=KzV zBzvgl)|r!rJS3CxJG{|!k%bfag^Qg3WSip@wbIRJk(p1W%!J!Wtc%Ny;}${NjOs9g z|86=p8M$SxRxvztoN;$NTyPrIB}kiIRUw8ej(qrJ4#;Rb$x5viinTNsY8; z+7WVuTJm&%&3i4#bRldFYZS0NlWFGy(V_+z{RAvDy11J}M>Sh`q4lsOq{dRIt@}xL zW76D9=V5vRG&S=hQuHkqd-yu9J2|*i78O8yh7Zy{V!CDQN}gWpiV3)kE$0~~h4hw&K)#b81~JWa71TfxRNB+fdIMrS z1?JQ9gie}5{qog2;w(wko74etVV_F8rDywXQ=dqL{!y>5C<+wBljVp1#mn?iZV!Sr zWF#bblxG$N?&Kxd5Os=iNN(Xo>3}X++8X|KqN3NyEvAK@aofq!JbqJRDl-miTMaaI zFbmUo`?f~BNfAzPOXnVhROD*h6WxxBs7#M->q)`9b>hG@{BL_37)mrotqz?6-1P`AE z?12hx+4!-8OS*3ZKPF<(-kunRXl-Kt$|C_-LOzjfld|3uz=?fI0hvau_2_$ z&M{e(noz5Px^}KsATb_Q0ukF&V496TG=lK1^ZK%-OU1asda0_1Xik)!XwGto3PSBN4@HAj|Y$Z-4 z!~txmil+7Hq`4JeJPg}JiZaTeyv(oCbyniJj4ojTQpR zV%)Rj&c(xzVb4mPL*sR*zR@(dKbXcBx>kQ#p#`XhH4#?y?sMm+du%JTxmEYFxBau) zxl$J=D6#4k_=>y7{E12WUif`n-L50^l^o>I3A54%F3xM=a9N&YKfWc?G_9|b5N~AK zg4JIZzwy`T{v2vdd7g4<#0GaC*V2d{3yfxvv?HNClId3;HTEZ}2_+`)-Yb3rs4DJ~()2vd<^J#kv6`yH)hL+TX3OB-s;#pZmU ztOiNHV4?*Vi?8$^dL?xFod^FqE4H=9z38oKbP(E=kCi)9I)Lvp$Qoq_@&s1rn0D|lPR{yvK?O0FOWMF~MXvFK&h8Z;87=yco`s#GWe2$#Ntn3+6 zo3pLjQep6qg2sYc?N_H*gKm=@&k+09@Far(#pC&yASzp;F+=U->Q`NW&;nEj|P zW2to@rgHONyM+@!2*TXPcNC&8&zbtLbg5{NAcuBjPIaZuD+_MNmCDO*O-rE}JC0NP|#H1v2GadG*YekZt4Qb^fupT<{GNbL? zp=afhlkP5yY%jv`Fim4i*RxlZ^Zcnv-ve`$l%}uumzYL^ekS{?p=&$&NMOgo=ansQ zL@eU=tD?1@w=mcX0NST43r~&ZZCmbq z8&3YE+$fQ9JAm|!Wp1-FD#TJ<%X)cRN=emc05+r<1f1n%|8{cZA*30X z*`8?{n{4rDH;^QZn2SVEzw5(zy zgk=RBot@-T)Efg+HL`F%C(w`YS-1!{Bp}Fc0O8X)L<{?l%W*_hyV}e%xE$yrG6p}RY`V4hU zVP^Insqb}~-N@E0?k~wwSb}{gD04ta43Yt93TrVLOMO?)vBiw;2V$lhLCPwo4{&AI zFbliWUve&T1*S-y>_GZ6UI!_O#01ra@jp{HWAwpxtWHz$lp(Nf=%p}4i<4Lh)~`&W zbJ0kJ4_o=y^drnEJ6OG#zq=~z$My@X^6CcGAsRhaU=|8ylexky&6k|8u~pL%OH6QX zk;21GkIssIBDuq@MO@rb(N-@(*@-{dbyyO8qNvMQ(8#hj+)k>ZguY_W2|?pRj`hm7 zVd`4N8|gFP{qvcYnVZVS7KxZSnyR9MsjR>qa0r7b2xftbJ!4uU4_wxLMIg+RORf&%f_ZcQg03 zbCFRH8e3coSen*gGDv6y1-r*c(Sv}AQtAxt)C)L=2&A%GCjZ!vP3@2v*Wx9el)rURN zREbV_w=^KnPj*6af=KcUOV8=uFV%}Ri<(b-8AOQNAvF;)P%mr)yUi8`4lh+ZQ>lg{ zM>8jC8zg?lf6Rr;HAgO7H2pD@$lnUrcrI6ef3Ka1&jPxt(-~eX%zMN``N1fz2bEi zgxip5nnl+AHEXBd!@f?N(WFq`mE+sr$MZ09{?cTxIAgi~79Sp8=Eg*Vg7Oqgbd4>& z2EQl6vT(lVYnwFg1Li@7t43W{Lfr0E_QbqK(@dTZ7>ibl*bbBxP5H8XU}0ZIZ@ED& z$>f!mW{_6-2vip2(d~j&`p+eNL7C&9s^0EI`{l}-Myz^dy^I{k)EJ_Yc0~IHr2}8W z4T#datG8E-=v1AXet%k@FEMPB41ajUlPc1v#Dx`E@VmzBf&2#|G|J!$Sy6o%#(!)UA?OnZ*5zgJrZT9)nS2p6`d*z=XPt!)d;`lS;Ddu zYAV~{houkR$fBvfXE-f`8gpc%KVY^|u8A}3i7*@D(fMx?Q3}dP^$tl5(Xl_c7mr3j zUR}Gleapy;!p%&tT3e>*qK*9OtyU}0Hd%&rOKnkkYwcVQ5c6{B#jWoLyhAFesVu6c z_9lK~FW27L)x+Wb=bw%+y$iM=LOebJ_QL*LaX2#o<}QsNBKu9G!r|45YmfOG3>1ah z5n&btSaA+3&WXJlC8LsZc6Y+a>_OF~8=re0Tq|mp+$Q`E681XCop~I1*HL`*6B`Iz zfv`4o83IS(ea#Y0q@E!|5Stc3nl)>CPBY6i=F2ZWyTEI9*M3#_s&IoXtiz7flV@fmm5h3py!rgl zuH0{K6gfl&{Q*~i4=qLmy&FegKYTVB>i1}0XLa`~)%g+0dd`OCHFq?JuGC3n4U&?% z9C*zQ{*;4+>@_-E0G?eGcI~yjJ7~|fbQAo@JglaOs+YFfF43a5i$I6Dj~7l1%Q?T$ z-&Jr1p)0{TL2wXa!Sx-Vq;Z$DNcM9#y7MwY&f~Y{q)q@B!#VhACsAFyN({yHbkb>O?}c0YOvkV^GEx$9&;!f z>9v$aEq?2|gyFu`>#eL7Cr9hU@11A5*o27Ec+k$`O7&^n0PxOkP5prz|6J zJ3s{!uU`MKnx|n*s;vv`KCP0|v5yQh*t*+<#LM_Mk45kDEnH;pN1PK=n0n_*_l-cq zG5FesO`*TD(fn#PdD>jwp|+-%#a=7o^{+=K{qkQdzzyyL7g-Z4Y;zJfa;5E;vKlVK z=XQ}@_FwS+w{JM|7*?H_*}mzY_3HgMTJpU?pT9lE%lU;J?LL}f1rl1m^kj1{5FA>8 z$3>+>O&BE;fhKH9#)2(H-9>K57xCvsR^T?d3ObzKI}_Y)V+B8pky4t;Q+bwfCC~{8 zBvNulvE7!iA^7-CUw{x~pDK1-mQ>_BJKuOQ!BTHvZTjughET3y%$xCWR%>fFx?avT z)DLG*yL@c$1J!1nCGVOqoPfe6J`rkxo%lPKrPst1+|SL7-^Mr`nFKK|YF8wE%eCY> zOuAsy88`Z;IADLN0~JTOqsozKSyv4PH7gZ%Co>_?R8x zbw92kU|q9Vu|NLh%ar6=vmB8D;{>O1|IF7W@v%+;%yrs|4J0}qOWD>3nY#6O-cRrB zj%77hsW`(zcS|^1-8|=+q7L`b$s1CN71YACb)iS-pLzDAlRBypP2{4X9jqWlcV*h0 z{w;1PI^>O9u(GZ`}CfzpT0e8G9d!$I54rbpK`88>BML*qQ2MQ7Gmt8@^`{Ik2K|+bE5W;_{xLozwb30uHsmQ#u68|=815YmD2K`FY z=51(`BsF55g$r}IIdVy{Yts=(rVm#sWpe0xt>%3G*<3f-*%wt1=5*v0 zgoO-ctSbj$_{sP|?jo&_PG1?J{Llr?T7hyD@)7J{OytU(koI3kA7pyJ zUkge77|CZ$f9n!)uDQ=8=G@-L$o;b*Q-Al+LQD0_FO*A@lmrtmj&k&sHexKtTWtSz z1mNzM34c^K?Mtjnd_g~WvV%Ky{J7(69R4tJHp%)#QAP~^)n= zRK->`msxQa>U;vgLN{5KvEf&p@64Uvoh@E_e#S~yS<(Csl`{XcyiBgFkQ=4VlyYP| z11#_Z)AKtP21PQLQ~9HEWkzD$LDGDkyc9yWGl6GV#O-)qZti^8V?5|+nW9ifxe4X5(^FQ)Qg1pM^u%e7`iHUZk>LLI_7^0(c%O8uX{_5?iQ^k0Qoci z{G7Fn@~wIAbELH@ZUHv~cbsWXDm!tP%oePnjaF=VqOY6m7OZJUdMsTSHC*MM=aLpy z1rpxRBw>k;apBWmUu|EZNjs+E_e|7D<*9W570+rX68HMrzB)9{V4BzdNi| z*!I8$G`4SOzNW&m?Uupf6d1HkTwkvKQopZ8+KkN6SNB><*2Az2(B3Qcy@Pf{Ru+}0 z^<|_MlPHzxhD@0e!;gsJ`m?8wj8kLr)Ywz(i((SHW6szI18C$jo8k<^u;$|tlaWbR zn=`4e@kvKPxVG>pswy z#*K5%o?HY|aU;Fdx&auyaf&<_?#N2))-`Ud&D!t0Y}xw~-9*QUy~Lf46ffg4|JvSV zM$JO4-pHiJ$MRL(i3Oc`LZ{bDdxN9io3|8C7o0uSBlb0{{&;(Z-P-orpPx(w6L$_q zB~JgoqRrIi$iH1eGba;7je&!YY{}M@{}Ni|57q|8JC>!-8Tvj3+ljZR10uA{l)veK z89Dz>&g#@2zo_?BoXb{kf4n_^5`Jfobf*%=lNwTDeKfw>$Z*>Tv9hH&324owK;K|Q z;g#S`tkwq1a|(nK3}*q1K>+Q%LJSA*sQigk2c`&AxK1m=dD*{=Yn8FiFnR2~vew0Z zySS^T102hXsI0ee&}*5t{2sN{4G_^X|AbF>sDlvI`%#_>Hf3-av0Agb&M0H@&M!%T zZZzqJPWiTY*(^J;jaaRN1NrgeRZm6<@q6Ei2@AKQ?J8%Xt-rYEqa3)0a|Z4;0NZUr zv0LajQ0qf!ea$Gin7=7$H%!{HRs%&XXK>-c zcFbl$=Azn1w>ifz{EQ>1lbY()&%0ioTe9=u>*xOIak0t#?9YBVvuD}X>ytOIWkWJY zB*H=8aFgc_GgWyS$M)2W7FSmB-wAByUElQ8Mh(x|#%xu6OX9nrY;LKiQ!BVsSAt0U z#*9qL07%|aV5|W~29L{pyvsAXuM8|U$ z;L(L(!|i0aDK0+bh`YjxjiT%UuRejIpeMjJ1+1F=(ggTXKp)2!Rv&v5kl~;J`_a>E z5aynfY}H0ZDMN^-04=RxyBTthF9bRnzE%KUxuLG+B(-XgU;rTAYNo+i0>ayTHPz=1 z#Gi(dZ#=pFrq9m1uN1}wkW9n5QMW?VSC#SwUol|oWJ>kB>H(os^n$1t>ucE2ueoF? zHO%WOg)z z3{Srqx_)E12Z0~TUeJ#7wF$pGz|Wlu`>N+%LYoefrEY?Z_}McGzTiUeW@82wej-~p z>n4@U&%URNQOvUmVp^_i+6ic33uJzu`RW;Je?3=(QA286V;5$gfc) z*Qlu1l|5Jz*RC{kaiX>5lZ4-4VzoHDCU7@j_W9b}6jAUtJu{X1@EZ9^YHQe*z{qv2 zlA%^_*+*RA3gK6IRJP2tfUdVC)kYkAYh8FMu1+z>7?>PE`1vSn_hM~%P>_87vA|Py z$v;jXeI9DV|FulB%-whi4dFGq`K#5;H))ub(2H%!)KLdtGl&4SG6kafyo9G{i$7oH z#I!~K#+*jAy0?`*tKdN(ez@M%q=0>(DcnOh6IKdUIVr36hwCm=@2f0W)m~eg=)5l` zugYzcm2{nf?vVo*B=eaP&xFCQ=26W{S-SPv>s^(^4hix{K|YTSjp%s`9tr%vC+zox z_b%*_cCC0!1YJC6{cI$SI+xa0&6LrhP3J!n6qpnCdx_~hwd%LNt(x1{+avIFh8VWM zMG{HL;j@Riw${Ybz2fhfQ}pQQ6-(G2dZi9&TU}O*Nss31l-aG&GU+*ab8<@`N0?#) zI2U#obBe=pHOsx?+YI4H1%`I!8Go0%LygHc{beSEyi;1JzKemo>{4HKYx(6wd+4n0 zOpGG+R>rLJh;49c4EJc>P3E!9snGSO)A5;WD*(go5QZV%mV5+eA>^h4IO~P!p>1_5 zwTnf#o_`&lmqoc^y!tNA2%7tvJ z6*ytML9)=GImUu=Gq1{#i1cr(LFBdaUa`=wB?g=$=f2NF0>KnT=EBpjSJTC;z&wczZ1Z@jKR zciRTKnVWRy}wA<)pC|LTZ81C5Nv`)^GGj)}UvpC<9Nz`Z!X;sb7KK)> zZd!6o(FBm?EP|f1q7b1E4hZl5KNxQY^cM$b&TzPu{p`#C=*P|YrSmAv(?(e{W`vr4 zGGoS;x|y#z^JaYfV)%OP9=AQQGs-KTu7%9UEw25`EpyR{*Njga9Klv+A3O2)HU3Y! z+n{I6XY*!s{c?tV(6FI(c9bd3C@&3s0J3KO;c1}C=6sYWhh#+K@n&Y#bl;cn1S5H|Mmwk&1?&(c5)0^@CUkA9e& zRx=-*6%4yN@d>yoGH>QjE70OB@k%z}Kl2v&WrQ1Yifgl7o(1R_9~I!Ugz=MU8T09zHhC!3iELRe-`gseBF}ib?T^*i?7H?I-N=#s5^9(&KG`YZwHkd zFIO;O?%-C=WhZlQRDLqUHd=}5dnArl%Cs7GvAvuK_3Rsc)t@$2u@kk{o3`x0JNq`8 z`nTzsav{4B)MF8KVBQy-f}-K+Bo?M{0v+pw!EJb@M2}?CV&)|vP9A)OZ>?Td(QSA@ z-sDz;b{A+d+&@#J$2acnqrm%%rGpU5FAys_`4>(N*_w6yn#ZH$vv6y3^*PU8E-%NE zqtno})zGw*E|2S9C<<;uIX?KRq=&86EgEQ)3wVkX(ktWc6KLf&m>(u+$uF^&yUL!b zfaS*=#3Me+JmL^lziz?{wI=V@@653m)RS#7@=`5&CU^a&BuGrPJ!97IK35sGlP16~a6SGS8(-TU0a$g@j4VBr`H2Q}L<>zlSA3Z&43G8`TY$AfrV}}XP@f|e{E(c#>gvAEm;@w$BB!J) zwxSM2fh8Xr5Kk*r0i0GV9+Gt~fydK+=yQ(8S>6wS;j-WfpxQP~b13I@nbaPw?xqbf z#y7K;g~}6Uho$H30C3^#%~Y={0GQZ$qyjo@wlD^X(+nH+0QsR?Y4`4UWoBTRVCGXk>~;w;GJPJS+!`ki@r1oFfWcBH|Egs}x$0MD3{R^-E5S@;SR0H>ocJkOXTPr)?C(ydXpHFhzb$%WxSqPp=}`r5@X(G6lYuEVu&2ygJCGf$k8^9HgTkrgr7z zbXVZ(Rp7#Yb^X>A1l-}3TA-wvnXKBL+W`PH3EFx<%Im)c{+O9KoKZ ziNN}mDadLG&j_j`tE`bHIY)9Px9L4sadVV#GfTOu8ccTqV8-fzT zk6pZcxOqAKSvhwT0rdt*7QbCP%%Xlh?ij10G3C?Sm@~PS^K1}O*?mbFs8+3V6D8X| zA>M)wpUN4`>CeqEN`TjLCxNT(1eF7cI{zbmFzi+0T!1TYSK9MmgmYY4QSe;&;_m#$ zm>v9w!0eE60!;us%M})Z%bXlY(mtKjf5nKL;<Zo-n@dr^Iw{BT+X<9X8{PyOr!wP*FOf4T+Sl6scT0*An9ym%EyBXq@BIv zp#WKArYgAT!Qodd{}3Z z>el6wo*ujF^ZpRIUrmnS?pLVu?rCT$ zeyQANX5OV-JwmnvXWYRFJwz^`L3F0QD6FkrQXxXU32y-$?9WZ8UTyetRPc$3PB*#3 zS~~5VFR0#2_Q`WSE5{!6R@+?`-QJX3kn&Ey(3x!8AEwJFVhXv=eYI}Mt+{5N;x=Ix zU+NRS*PZu9QtNev%PrY27evI*R#i?t3qEQ9!xp=vvhrbvZjif3LC0nAB-f_fA0pS~ z3NAfzbg(I_l7%B4(vr|aDh0)?>vIKtd?|gLGj#jiY3tclM040n^iT-^_ z1?*glWOGUKgHCqJxBxiRR!p4~HaOnTDFa#iO83&TqC0sw8?Em~I@5B*xGFEFr3be$ z+eG+y37K^!w|owJGnUVsb)tfHuM9t8YqkVP$$7|yp@%TO7qe@`t(a392ZZ{p5&gp} z0N$!;w{-;VdJ1P8bm-(=!m~wyeKX{BfnIzVH_$&1I&?j1h{G*%oi0;3I0aPHcGN`B zb4ODZDkcE)1(5*TL1*nn-9H_uhFU=CP<=byUJfl=j?=j$TB)qI|4?w z4XAGEu*M6t*(DDjsVr`kOeqCyR0h0w=r3*2xXPZgX?GqiQR1@BsM3vPLlD zLm$2Y{@%pCMvZ1U|fy9FhDZvQ#GZtDF;9`c|lm$6icA ziSXd%jXu;)S68WBqkIQ1>x4uYb))9OGh9AeW9C~&qmgTn`VQS40W}2xJ?;Xz5n5Ts{-0CE@O9xy*WSxbVfT08v;zZfC zz6L1M=C@;A2Q891Amfp2j?5Z)XQGzQtTLa`XlOUb&uHTd+HOjJ!9g7eCMoOMqZ7Vq zg+!2=sv#fRkH`c*@G1I^Tv>4Y5?C_3xVE1S!E#C0I?j~J>g0?P70>eYHqDSD<0ppI zGw@0VJd;h^ry)-r?9A!fZQ?(L&^9fsrH+&tnh6q*53GXgRQH9 zUVvDNgTpf4_nM-ndcA&oy5=Qg#Dxc8KV8vw&RKTlU@5b2B*hDv zkb`v7@Wz+^epC%NfhluP5%zn z4+E^K%THwEmG;*;*dPi;%&)mAO}NCGk|C*+o6ZYE{qKV-j4GK;(Vk+kz}&p!)uJ7t z7Zt3j6Xs~E$^F)iR$%uxOH(rbNdPn{Rw1(w)$~Ka#h`1vAk_)=1&FV>32t5Q@P$Ng z>R%27;wM+ff8Io>sWGz`RiH1`i_{lHGy~)kPJ@*~*-7^35P$F);>g3GJHS~$QmCjF zS)0IJrZG-W=@B7@oO1BPqfXw1xQ*k?cyPz@C5D|x+^!(O_>~Q05Wro!NgUONGbVQT z$ps|dEE3`j?l>waJX%~0_Gow_CuX-3?;6oI-o8q^32=PhFzboDo8V~k3Fo<25ibzq z=DmcgkLS!ovE9Tl@InC{)Zvw6Tx#MeB-MbIOY|#sL=l2y$fc+QK0La~oSx{Indjf2 z@v%J*SA~Jwj2?C5Ee>#SEyOSaM5qR|T&b?BBlJ9kyLaV(d;#2em&;SiI~TYK)iIl0 zFHspWp3bS? zahZX!ddq3W2X26~)g|hPadGVC2;8X_hXY5TY7J(%VR5Qr=WHeQkO&zO0ty zKvWq?+jD^K4r<#Q-VAbLOU|=rIet%aG;=0hfs?3s=g7eRoo_8HKPSu!O!qcs7LY5t zn**^~hH_Dm(tR|lOMYPvcwWg$j>ZN;vVokOBbSg7XV4TCXOLz3?;;I&$Ps3H@|A2! zxoY6bSwtO}kXUrWARxZ2Ss7po&zUJnl|U$+N$~gtzw zvJp$TqTnDefQk7{2ius{UTwy=7Ul?Bp$y@028t+h1r2QD^0jV@E&*=pyX(9u;A0YlM)B(EQFq z7rJ(vEwm2k4&42u513mB(J>5x{mb#NdY1BYuKjoyfxwU>qo{0GoBt&oUpow*EYnM0V}gJunZ;bP=(6hfY+dcY&I6Cb zclhw%b8LrNGSnyd%@)QtQCn7A<2C-x#RTqn|su(aF{sjWSz+qzQEpwYR8M zd*HfvF9&8MzR`_03eJM635WhXrwLHQqwd~gXA#$&Nqv`Nh5l&Ozvrw|(wUwBBO{ZQ zT?hIEtSZ`~h?=J>9XJQdAzF^DS#>A-CqoD!QG_hEnsU>Z(A8N~)fyoH6u@lgWILx^ zH6S6}hpcnX%oC&q06UK1E3%(QbyVMNxn9z`e)%)gV}4<00{+$6{^rekg92wgddcBS4l z$`$o(@SNzZj&0*WlC{uN2Y$bv*r$rL2yMhKn!Hd{+ z$QJZM!RV7U4-ojo5<}8+%P(c)52o$C?@H=Q(T^wWa9J~g7fdDfwF(8Dz0g5HqBircAo7_a`fwSGPWOEhRU6U7wY9LN?As1Y( z(Xr3wK2M6dg7}w?FAkDW`5MF=5UqxvNx`}Wg;X7$7Poln&o5>R%=;VM?#063Zo8*( zS+2aNIYHr&1_T8muADLp&G}+Vtm~2-biIw&t$d2tUK9KO$2Fohe`ahN`nUa0tBh${Qu!9#$7cmiKdvvO=I2P5 zb*V`?UtQj~3?X04x-5awY8ytOZ#g-(T0f#{`e_t;=BYep9-f(F3+~k@%q+aGdiGd# z!RO(P*$msG5=?5$VD+6~{*K$nYZ32lM;~v&61U3Zmd4{(h2=T;gLl62_IY>f=Pk!- zCHM<^_by>8-`S2SGR>7zR~v2RbYy;{-yc_D1=goH>JlDuEv;Nb7yE-#`=+W3%X>P< zNOj@?>nD_}1eb5fj~N7$ZCW_Fk%Y)>D<&uNq;XhgoOe}irlKS70YkX)K2w$9Xeb}w z?>gy?zbsl4kVIPxkssT&`Icd1{M|!{Yot<~iQ-=s?+pm7ZIr)e&oj)3n;qDEXKT&x zEyy(o-jR$r;c1BDiu>osB#T@kjIUU{*-cy&c!(iP)rU#U4lHS z26vM@@@QJul5|~+sM(ApIy2ZnKDM`E@)UjvL+K&a?GAVjFVuYYYt~@!P8!pRWECX1 zC(v81=rM(NW_0cRJd%DCS&B1}DUa@YOlsll?jqIMLv^RAWOrIkMI7&*cHTCMcOjiw zrHafxvUJmysmAqPoap`9H$?@ZJLwD%s>&(62cv5v{)WYMP}f5fnNkbY=cJi!)2iPf zg)$Qxb>A{C5#;}w4s>eD4XIUV3Lh>lfec6x-pOFI-OZdNT=;!XIke{kaVKkrZM(J* zAhFtjs*(PxAEau=7AUO8A0`utp*PJD!rf;(dftiY1amLU5j;p^~=<*XS={_V( z7#xfwtsh`oam~obkPZY;7wWzTka%2Rb!`r`aEZF1#JmHwh#@r%o3*GiH_m$N2`L9U zQ~mpM>2~-m+)5O##~)rg92j5w-Tys+SBJr%A995G<>T$Lh0{Y~UFyQ7BjexQQAhOg zD-`PL$poep8ua`IA=~}+)$Ge+#=JXpCTss24wgmR9q}ZzyvQNLM zw#OeP$p6R3ac(5A6ca+IaV7?nOIdugg0`K{@f2({UrdBPb z2GLdByq8Z4F_TcPf>o*D2n%RO6)s$Ohg1u6BW_wd>4%`|H$h$81HQKYeAZ0(;@M&xGlf`JCPE7-q+N(7fFiLl zmVmfY*F3E75;WpJqomtY<39V=Zul5ejk_wY28XBpYF~_7X~4yMIzkvS2VMuUIl+Lt@+A^yY4nOhX39RH{L=LwCFd$IDZWt729eQ+LIWUB} z@!>iiT>Nu!!5V0hM*PYTv4oWXYQ0f$=gzm^(zH%8>laQSxzsf>HB_4K4wack4XJ6Q zStoNmk?9Gv9T^&Dqgx=n7GUKga(yG4Z)q_bCts}DS|)O2snQ>|I!Vn3ou!5wd7BF9 z9@+4q`d5^_oAoL^O4It5sSoGR7_ly%(*wr?0nI3sB`Pj+**1pwB@>Pw3Rs(DjlA`u zXClqfqzb{!>Hp9xGM1Q$vy9_hZkIL2fvb<@-CHhr!%)*H{m*fb$1kjp#>%y-i!6hD=9di{oC%m=Ao|B{qmGc3TkpT^E;v3= zH=@KG@s*FQzz5#(NiRQ+tag8IKjalmO(mdbp5K(u@0!%LnhAIJYxt#)?B_s8ZP)^#F5!xE=4><3oBhfwnv9swo$J!5W9NhypS?nulb0h#W=u?1`BLZCe;i0)#=c$CsgYU~ z(6O4W&iF*(H8576b#|Jt71*rBXMcZ1l@JBYu_}^~QC6T`=H(QTBn}M2oKO`myY$YI z!4$ojlg;pPmht1pJ7Tj=>~U%0_(brpR*JP^jC{ZC^b4PpWw3$k@1zYLVQQ$PX88|54okx3(V$PA#XA1^sBcMbC4$zumu8*BaSNLF zzNHH$Op3`rhp(bICSgl|*z@Y`z3v!4=dAOKanoV;$Esr+nhF7(t-KKROaPa1oS<7-=@TznZ z1FE#(nkf1B&^~P^KQT5LwXiJyQn9y*gl8U9MOyhOi;wyaGo+9j9h5f1UiV^g=7Zyy zFI5pwpt|4V#d2sNr{U1M1(}+Zdq@U<_r3v~Adyo8N&#Y-fl^oMS;oqqf7CgjAOyaS zXeP`f&FToHSO=%(3j?#ICPN=d-fWD6cO*>(AubAKiZB#eUeE2&4MnX7n~JvB7q zBY%-$2{P>hSD{vOkLC{1^q8B# z)QiWWWZnhur~x-6=mI}?z&ib-g>fI2DX`Kd`yW1T<#Y&si^wG~ zA6M*V{oZ|=E;n&PK`)hgZSQS$tJds!j&-!d6P7w6d2Bx78q`+eil5L>a3Kf>?0Z{y z^{{EA1izfdo*YUyX)*UAa}WKe7TCx+l(!0{IyJ2{t**y!e}N|_>>tZ3d;CM_(hu74 zMKIHL^sYDWWrR{;MZu;qpqNlhfN0i6F9vzvYrX-zJ?xkS=IJ*P6CMxvniwR4d;~7P z%6oT_XR5!WBFn1B0nev~T}>d0T*R+x8@C)s;0U?JmmoKRF_ixLAF9fmze4bh5eqp2 zEwqzdqBZ>!4K<9Ry>Sz2(jisaABt}oWTT8yZ;eFCb=Ufp>hB4CZ#dHQ7kelsEr_vd z*ZJd!JMBhF+}}&DbNBkyb0!sWe1o#GYY!WLvBx|7#l+Hx@Q~7LjT9VKQ_Ha0dv6l;&QnXa7x}Oahvoq{j}GCIcvLd%yg3p`!Ij8(qt-s#DvIM z(M2@`yC~Fxp@=Z*rUh!^#<{bSwyS)tviCqNs@ah+TJ#^wC>~u#mAcCO*Jfg?;&2nh zz@rCg#K4({NpcQ&2hryA&-v)bl4gXqdpUYPgb&7l!uSm-Xy)NRQ$i5OoU2$qme!nJ z>YK>LPM}Qv$0{pLYdkB1b|c(gusOXvCGzyM!Z{iJsE5P}qKI<%Zo)5S$fR z=@TA*e=?%>sFJ{8V#AB*Jm8Kv3;E5Fw7B%J7Nq5Y({8)r6h$E_z1sPHs@{GzUr`b&q80iH{y0<&TR}^}XB;JCyq?Uo%G% zZE$5bA)Bw*C88zXb*e7U?;_6G+PXIf{SyC-?G_Ckn{Z?W|B@J^E{VT}Kj8J1eJ&DR zq+w0Ws<#J=6D8Vou6j#=lvgV(0|7=Mwn_To<3&AoKEsAz#c^b!Xh&JolvZFPJbei_ za>EPq<~i>C%8vE!r^ekDTDurl5mthBmlg9H8~3AifjB+R*BgIC(5c0IW37_Hy9HOd zE_l!D7jN}1s3JYk5o^LJpK`&5M@PRIoW7SpT+){$Amb(})&GZ`&2FIX2|i6tZ$tGC zjW3Pl9rUP8`)-5Z^Erd6EccO+y;si?wpl;4|4Mn~9LRJ)G$M~s^Y-5(4LjhYbr7k@ zT>?*n6LmAIpM60IQC()Hpz^=_47mFK2mIpQ6rF1vzyu zp2n}hF6T)aP}8qy`?v5J2^a~g-FW<~FQdXhzM_ACio4UYNkpS}&PV7+M6K2s=IZyU zi(J7YrOJJtxzIJY>TMt7!y$(tb38+j_~m*9p%`Z{~F89Y^#$O<9abHNU)l0|g zSG~tB{Bt69>g=~V+=iPBG2l<7B0aIfkqxV*Vk1I|e&1ej&!Jgwk#5Tht$gBPas(N{ ziu3C)I?INgn=sf$zq~6fW}L4n?Q^MEe5b2H_5)@~q;_Q10zAJsTbuE478A_Z_-FPP z!^nAQL14j$8Bar9HoOVhJL`m}`K5cZ77H;gzI#<(>}G^6*g6`dE;;afdDeD!c{%cI z?PB@fq{qmzINA&A10dIM z%N++#&p&Rh@6h@q;8<<=-m7O=oQloaGk&Y!rd=vVv)&d$r#!Fde8UMZb?|nH9SD~` z5tA8lZwpJQe7%IiE7Gy&{YqyR0+m(cPsREb(xw-*r@v#DFf5>+Y?}2C^QRmO303s* z$ZG_7jDdV25<<^>-M5qRr_AgNN%lM=URtCJm`6)hM1S!hszStEzM;}NUgAzmYKta? zJ#BelQavB3i&;;}eBz@UDiNT|n)pG|RsvgpnNU^Ky6P=D*9hFQYk-Y4VZ~o1Rd}Hz zP!%}>M~vULxw@0aiZks?@lE|y@Ue&?u4>x|p)mRUuQJr31hwwO&d=g&p*9kaAUMDjjU$OXTYOPlU`-!12YufJpv z*x7c@N>P@?JHw8kGi{H0*f`+JZjy9B%DnsmYVX*Cd^V6D+o=yy%gSLkgU+OBy9AM0 zsJ5d2uzW^b^i=JV(1&ooh*Z$*x(=w1sA(qALO{3l#ZOOu%mj|bsac5)H;muMS0--` zQ@nv@II%dX?HgE(db~-P9X@#cJpFgu;I=(mxS9Ns6L0q*{*g;}C!AFTPF8>ProS(e zng+s}&K)o7ESFbly-Rjj4V$PC5BQn#Zlji=&Cn*!2*^AN6uo+wRdTz@P+mOe0Z_hl zHIQ^}`}b!+ik;K!i*$i)wO-fd$FvvgKy?=5f{*22oIPI>kE#F2F9tFP=rbaLz3ok- zC`O2-wYJraz?nuIW*oe+akN;y;6f^ z_8&VpJhZ(u=dRHw4i*@BAD#P(e7+R(Y1jhFv>!{nDnT*=4PazE1^`7>^+Llgg|4?r z!`6hrD`NCjeYVBgTYb>ko3k?*E80#osS)bc%a`GXAKO7iY^U$QhTt&geK;t%G$Z5r zADq@l0LY0MZ=`e(I8s4?CpRO*x*knd2o>i$ z^$|q9i=-%II|%y>8&XH%@qu2_o;QvQ7sz`gPgl-uAZvqEdH>m|W|B)DX}y%EqdHtrNcS*CRnC}F{0}0Rx9C_KRE>~aq-hXPTPPBC_QZ|K>@jHYg0Lv4 zh#mkkY)zzyo_WtWi%^AK1~qpr#bop~XTLiwM1WIF2*fPmw)742Sin5ZdMi19f@8{#psA6O`Lmj zNjT(p3QuA+j#(1n16rObr|s{L@`Yu?J6Ik5kk-c^VqBeu4FcWb2m1D%*kAczoSYyT zLWq=jJA}o&t#KQb^F#SoJk6P5%8c{7m#GJ>ZqMsG8e zA35u-#JZY)E%MAMn%!=x$Y7_ir)vWlalYXd3LT2gx?X;^>$)Y5F6Ny;%q(irb*RM+#6 zxf`ljb;XBQ#1(@KCZ!w*Dqmx)-|Q*8dRHLt1)VvzS^oeO0zfhh^J zvwC=?z4w_f_cwFSs3KyC=nbGv8d4`RqG;BF);nqn<9Lr~ooe>H_vL}S3v>bNG!ycPC8RXDvGATSedTUeg17;%}Hx+4Z67d~cJ{?>v#>aU(CWK!Y zGySb!eyYF1HABT29}=wo1%_i z0O<00y2xO{ubN6=t7$HBRE;Dl8u0Xq9v@EOTa9^{I0Dy_d;k$f)~-;eH19z&tF>ZU z=N1C!`623;++QZB!%T%>^WCpG1w^nm#h!!%nu?kZxl+R9AQr0)=JKE(j?DsKWv^RpA3Is8x%3_KUp|VRAe>&Bu<5vWNL!w{*v4$%o@|@xc*IlXCrmw@vao4(`R<(bp``O~m zFr6FMsA71?f^fm~DA7jK@gXh-33(DTzY1YVD=H2X`-`3Zo^$Fyrpg#x>nCL{Q5U?5}&~%D|x6oDNf?PYsc*+;wrQTLD-*rFALSSR4yi z{A@nW+7%C94NN}@?3{8^oxlknuq6pEE3>TBW{)Fa2bDGC?PI&p)u-IBVFCf~PJ}h% z*#t)XkIjf{b2>~d95g+c>Yl1u79*yS#%$%g?9{{|gF2C70v{FNFKK~NFWv`@@bK)6 z(dFZbk*z(}En8-C=hJDOKM+;|*(d4h1)iAUtu=1Y<*VA^70Q98@(vGRohVloQ+WES z$W){{rf_d-Y<3UTk&h4o8xicc{V7^liEh`%dW`6#cgcq6S~B`2Yo6F@t_ygbjZgd{ z#`ZLn2XO_=Bf3v$YZ$MKa1%GDo)PzeVge>?G1v@0#3yPCFWbpG+@wuc4@68wMn!(K zadZ66i$rZQkoWK9^1JJ@El;V(2Bd6e<6=DeU+lIJ`qTS?BS{{Cko@d zQ-@H2+gW*dhx0DijhCMCV`}uvXR-I}x3k{o1~T?M>J*_1?bVw%kogQu=sV zejN}G{~+Zw(FV6_VWw5?lGeejcy;r2BX&zU$>UMrUJo6X9@Xj%$D2J02KGdv?+L`8 z&%eyUdp|3RrU_Fb1scj(u(UU)KTBekEv!4_0a4O9Z=lgi%4wk0Bxc^bb_B_tl0K0_ zT6dHm17$7rPKMt4+KOgvHeYUcn^b_&u{2mIfUh`zQQ}iRzfP*XEd2#VzjJlk=+fzu zh(%cg`5w9ja03er30M4x2|=SwmPslHK_k2q~t9=TE>R?6>W>)pnhm<8rf3XMeWt|WmFv_p zm|_WtMknT~sT@e5%ED|Np@wKMTNaDJH0+40DiEfvxlnDm?;<6qlBqRXOzy|JXk?96 zt20Mi=E~T=8)y-L9_+8Z73`{FX%i2ob%kstVjPYFycK{Y#C}oY6gcN;+&gm zs_y^YHNggdu#v2b1QhY>&U&-Mv9t0SS{_R-nn|XFmFsl%w?>^`Gi3Se&l`Lqm-ov| z^pMt%6y-r#1NIk2VZ6!1f!cmi35=(pj^N-(WUBwyb8?JoSoi(4QE4d^irlv=UJBKG z(TDq9rpRh7@Ga{_Har{bjAE2+cDTJ#T69ft&Y8_6E|waio#KAT>_dn0*N;g!%H@kN z#uh}*=n5{T%YXP{zM$!n@i)IBCo~j4tB3NTtlhOB)MK zk%t;TT~q5K+47O{=Q%Gk;;LDkQ$gt|9g9MKv))##7&*BrP!hZznh|H{Y&DJ8A7=eD zmFy&*_wX5Cy2q5$u-2LcJbLA#*Z+!SD`?&Qkoh$u7p%$-jE(OytnKk#??|?y*252( zjS)S!4C(6$7BS`6maEr zm?qL}H&s92dK7PMGxDPXsB4*RgsRNA;^(#qSS4?}@`+=^u{9-4EO)^Iep?%Zs)k|N zC(;UnbtKa*kF3o3J&$H2ImE&#=KJTRnS4g$^skSfidKHTymjuW$(xhaKTuzVwkW6w z9NYM6`HrG$2{z!G{Fv)vC61VuNRjww0;6){if_3G%)3(GOGSZ_6;<`5pVTSflQ94d z_pSuvCEGe>fnJFd3d~yZU-#}Hiep+I1!C%~x-k-b{=K8D_Mw}n^b6uQw$#GOXEIm|&`M(c`JFP56 zAcOGHgD*m!Q4-no6vKD~1`frcqnM)N@hKhjd~uF0EwHWE#pLDpEJWpW2Gc(>Zh!VI zopr>{PlhLc-gr=+dU_yL#HB65CUS}26ztJ)-i7DU_EbKgs;R$r)L*|xL5+Bnc}7Jz znBx01JDcImu;4DN8!GQVvGv5g8Ev16?UkaH)p5ImZP0fA+&V{OOWW;ZVLwOKy>uSP zyuCcJsGEAmbgOIp`SRq*!;COSJKuV>5r5e3UTtP-yot=Q0<bcoLPEHS74qd_9|)$Db4 zHDj2uZsRd^j=hgz5lQw79g!AF>K{|{z_#$K4Gckf%{+OPGcU%mNCD=Qyu;BV@qhrs z4Kmo4A{hr6&lgh0?d;@@#YGa@8tY$~umKY-w?dJBiM6JdKFAIi`qD?mk++Lu{xPq? zkkdZ}V^2s092`=@cnWchsdY5L?lnvvV1iVS7(>Z!GUa8#q$`q zyTmUsQkK7G0A1$vElY-cYF+sb?$oatp^T-7sL9Y4dB#r0ZJF8e3+w>48F5A-!+Pd5 zvHi&AH025G5X;60Y~BRY&MNS zhzzaXC&$)e>;EN2&1>)RG8}3#^w#h?>h&G#>Y85UNA1B3dB#UZ0}@2%?NEE@5b>PBwxV4pay_WHY_ZJV zf9MRlVoF(xg;o{ZAD|ch)io1-Sfi<{Bc5A4uwj!|55boZNi%t4z#d=>M2caT76T;2 z`DV9>daIy|TV&UN9ve_uyBd5WtcTzXzncG3n40^Hu*INR98E||?4t~e;wlDHUc4gDtGjDMlCK185t=z z7N8Avdj5OQa3x?}-jXRTQ=i)*k$z){5P9g?;Hw8J!Zh^z-T6JPINMe|)vVrcK!$N7 zLSV5DZl{Np{Og!@uO~CA7-VfHS0(mJgaGDQdfYBL7NhT<{VPU{PaQlb%g~RSe!Q?% zcU#E*i&lkM)ed58fs31GQak2k3f6thakEeRyc5A{;;SbhC@stHn^?NErW znn}5TZ;C&Lc7(|G_ClNdS^Pr%WBV(FzYVW=A};B|N|!Ui;7IQJ6$$U;7U-=}xv z8Ep)cO~%?p_ut0>{z+W1Oy#!9uX_hyW@cg=`Gp3ik`epwyv_|}`eoCsB7Gu#QLX_t zbvI_@_f-LmsK8?Jrgd!r`Pa(LCYWO;FiZYV?_itxMTy1V5}yuezCX)O@2?;7-c9C< zxU)IR(mU$kliSK%gT3lir7m7Yd6@q_L=#6X(IgRtsnb@`e64>tGER;;u{#yl*F+c~ zky?Ry0o5ksoCmsGKPE;B0V9kREhyj{jiSHtW4@^5z=R10y3S?)NlX zJ90EqfN^bcZIP%fa1kqwZJsnCB*I+D4vdaU#(q?3RVy#=)-@K`&iW=#eqnWyD<6GT z&d)J!wxis=z$${w_|Z=9OMkywoQaxdu^u2@8Od9{k57iqDy;yNEoG7^c z+V+TRBKU`?ya}X4r9D1)Ljv@~&5Gqu31mJ@Oo02UMyTujJEsZ1A6Im&5~KzS8}vQ$ ztFD_41omloH&)&CXl*JzU+`F;;`rv*S21=Y(ii8oQYn1zS{7C>B#fO?ax@hsC{3A6P6T^cU|qB%X(ziZo-4GIpy5H$_JGmkUL#QU}Le|wXpx0>tdjIo?)GVw_enZg>+_`Y8n#rJ-|3Ca@|CA$`30Bb`D5Sic^~{F zEc5`gHe-+QxQJiaIA1V-jEk*b_GPPqnw?9L`R?Weq3qZ02CSxAblSp#qzCtx;Hob7 z4XsNB=AIv0sd+#~{k90L(%q>G9ny9qBYUuW|_TkqtQ3H#!+%NRRH_6_>W$BJwHIvtS{9SVcoTfPicMzY@mLItbpj%m}1 z?w?}2zrWk(>$*|5!0?=kTnLj|VSKtoe|dl#W6+JsMYO)3&+M;u757le81&e+?)tnJ z%btj^=+c>rvt)=cWFMGx`v%ne=ghCQsWt_-E1bJ@u3|;Cq9btfn~_ib$&}}>I*H0H z!R7nsSG!^R_)Eif>ge`2-FJH;Szl2{Ixw$7c0RUi^h?3BAzOo$Z2h(Hu`4=rSJ?|? z#_Ikb^ecXI%@YDczeYX(>Pi0IdWxSX{ioCUYcm%JnkDY88x#Aq7TohpD+oSP{Vl3f zzabKw|M3L~@aDTVRWtvCcB=yaOn%QzFqe6#y3_x7$hYKMbw@zurj7z;j+0bb)bi_U zy8_3`dZJ;-N!+xm7T5VM8PX>OjGa5;~@kxiP>TA{19h2bRsyg7pmNk^O2#C|lnDx(+|F+_?w(Y~t zD!-oc)hx?HBKv{Lx~_tTVrpC^w@-tZF(gv{HuIK4;b zBMA|OSpVMn0f(Jl->|Shdj#xVw*7K4ZqkbCUpSzsB8HV^m`d=^KILEUy5t$3M4bO> z{o+iT<<<~6FDq(lyVkcG$5`LrTQ!t-jaI??ILXX~J4=KuzGJL9%dDrIy(?^7ml5X4 z{)!!t0-mM04Xd^E@plW;5shoNgKCrt8rM?Nr00W6Mvp#m+drS*e0MCe{M!0rQ1i%u zU$c_b`-<|`yoq58ApOFT^A&{pn8{Cd`YhL645Pg~zh{E>>7r4|y)kiiCa$70yskdw zn#`ZY#>j^-*E2RZddVfu;`O2qd=WUply&7jO54Zp={G}#<~p&Mn9m_bGKFOeK{aL= z_Cs7n*Ze|*uhjU|C!;Y+Q0@9a{y1eK$fh?;W~gMGva{Bv!#pA2)35pK3xShYI~EIF zoyDIFZx6XSPM)0di#V7plGL5CTKcdMYq8_gaYBAeM$FXllHl4!ttTyI!CfnUVX=PM zWy?YRYJ;QYznv@Fju}kiDE1FC>O=&T3~G%7Y?Ad)hKhOfksp`ChyQ_sZR9JQzA6>Z z@93%Tmla#-*`GzJFq_UWoAxn?_15%}nn^UDv*(LQoK$_Toj>)n$s6U?50bcl^Per% zyDNXDoS#ZkENi=Ts$x%Nr{ahjahy;8t=74rqe~rHXREzmfA;&16*W-eEMp$#r!9Ur zBk)n^Uan<@sXk})5?h%aOa#s9R~n4WgF*a#6uSCWKfPSt3iT$_N$EOu^7980z~w2t zecLKCPl(8ZL!pncO?9c^N!h)L^m5(cy_I(<_g^ki*M6b2EoL6n9M>y3P+-+vBoZ?@ zd0nS=d}%A2#_(|xui-x9Uzlp~)y(0x&hUp}l9D-VLBp29Zi`3b>08WitV|deE?McF z$2=0(bg2#X=ksz(7BPT&Y#<)PnGok89ki!rAMnS?CflEX18l=)RgsV zQqbV^FFsuAv*fpnj!jP6HLbT=$8j3-6&{$px)f6XZ1|AxGYr@wJ)@WEJ`$&Um54gmdA$+vG(&cgST*V=M`^8;sO=3%iywkf-MDVA7vw-ukkCsEFhmK${EWL)t z!&T4XymN=@$RJZ>1%7yDHM2!g_JukzWe3pWopb9d!n-EkD%^UDJbbHlBLq7)Zf+Yf z%O}BS+m z%Jt?nzw?)+1!~G=CW3oLLp+A?4T0llRAPM0-zvDQd^bnF<@G!npG;P59D4R}p+0pM*#8xU~{v4?o=Y7l8AQoT>6fy>{ zSS+YC#W;%}OSYa5k!F2!NxLl7@3G~auL*1Vor>`P!`7F_L*2do&tl2mq>wdx6IrtF zm8Hm1BulbHWM^dGX6}k9p$yrnY`N`O$2x8HrR*}8G{`sKH&zlh42BS=hi{AVSjgAqxTnjW&CpU zJe2)q1Vvl%pVno$X=kg5Qom%U7J5aq$e*|8U92?F2ITW;x=a%&m7beK@oEtu9G-+T zP(spbnca8KmW(rDiZFd5JFGq+WmP>fFeKUcGI)IXq`Ws=>%HyC>TKtJ$!TSH5WMH+ zdez>~*W>eq*v*s!#lyhbw*Zs2jhkpdY-P4)wYQ>QGX<1bsb$VC4`&;!pC!FC?WALW z#n&wc99*XF#%~MfftMVnN}O$%)JeI`Pmv+xzyeh?W%O0 zq}jhD?_HJdS@z_M$$%>d(>_1&`7)Q2;#7}sYm-2Tpz;8pxc*?G|5}WD#FR~+)j)Ke zbe2W@949m~jr_~BQ&0F6-;%BS*&d$if`G4cwTuwM8o!;y5NgXqXUwjljYXA0NiDI3 zVf!>lbi@fRMSsKC6>o{gxOqKZds?G9)%&`whsTv;-(<56ng&aVWNzfz)=7v@HXZ(Q z7Vd(e+$48-lx^7_wP0-QVFB?aY|r=Td;f^k5bE+K`PX? z=vI>al|pInKEAAx?R>2-8kgbu^5pX6=zyjv1I{^eA@1+@2?g-793;t~My8J|R)W3~ zvxf z6uJiIi+*n<(`bFl@~o&WElqDeI!0)bT86&u+lS^a=J!h;{~|C72|LrlW|Pu1(e~>} zNO8-{*`TPV_2X(I?(Lg|A0kuyQMx7lLB{uScln7Ylv%ceNeY&A?xD+OwN049>bsp9 zxF1CP>nt@p)3PK^HEMrdTqZ4{5^V>Gc%*;ha{l}L&&R)~u@xJy3jo+#g5`E`h=EGxi0y!vPmXV1I&gSN@cOXK0@^jQb|O&3fO6s(_%cGakNJiipoFJsSR$n0?B z!BgnPGjImoH0+uu$XIaEOV5j_h{iz`&yQGbmag*i*B!L03CV(kH=6z=E zOjRN4A+m*5Kb>{G?dQVb1E*M#mi3(88A~koG-J2fPjz1D3Dl(U%uvhjhqB>idxx>x zFO4AA$K|#EnN%^?(4IszJ6}7`hClMP`;8-x^_0*o2oiJL;B|)km>A6Wus)dzCbU2z zSYr+f`r80%^m)?70KVpI=za+1{!g5N$6 z)^oflMYDfIdF1M4K3`V#7#r*_JgN`$RHE5trnr!W2*#bMeb578yw&sEM?IOkgfhs1 zgikd>#iIb1eyxcog=O?d@s0|S2^6qxfW>;D`$kq;`sO>L|43Vi3~e&|sL7ZHXIPOZ zjwGL4zi)khve5NH-nSM8bx84Q6+!pINrLnEpS#=9k zkg?ZcEEX!}pv#yc$-DCTgJ251RgiFVzoYC$5ym zBg<=48QNVxuWBDBm`dT^yGT+Jp7xB=RtVM>`-gTtk(XEliHCV#=Xc}wIa^MAEikx7 zP($OB;#wH%Xt`E$U+8|2B~KsN5iXK$R6w?kNcE;ZFKTDnKG*V*Os6S8Z>%6> zewHSJXWOU2Hd|Oo_k$_P4AdCJP%ZP`TPrmc6sL2mVWOX@2yI~4AQJ5?#^x&FJa}$| zcmfY0!^@I&T>5z^B>l?Y3oww1`>$8JKB7mWCqzAV{P8TXO7p$XsXvk$CO^nA`2SEtUQISO0-4!er{v_ z_|}YziQ6x|GD)$XC}e&Vy%IpNYaVAuO2x zegzTp+7opr>rxu8*q;q2SmjZ^RVOB>#V`9S;*XZMz8{5pz_av`O_L73YVhq_){D@k z2}1t*7e){I0Eimq7U5KRL1Ppe@ss0W-1A6dvQZ+pRw#Pkx9lYOR;^3Y2(LX9FOz?Q z|A{eS94#(1ZA^*I ztaBp;v8fy3-)5UtCJJ$0k>>-`!2rZsMUzrM*jTg`6SY^qQA9V)8GI)lwYQ@Y{||p-dR1%1AhRg8b^K-i6CKP{Lb&pX|%B zJ~>C6Sn)^e*3#&CwWT!EE=e7?J?|%A=`9c4K1#`3pRD%gXMrm{WlERa*ZPsMN?$6n z3Tb#T_C8rfqh_?|n&fE8hGTlflH^7NXK2hpo6;VaN_&P0d&Wj3o6H;!ZM0uki&_nD zQK}SFlQFC!gZ=k)dqMIsT-{x4UU)7#03Senqo+?aSNdhvTtykXSm+*y({R z-?B9pNE~u&&aX=$#CB&+Z=iI{DDLfH!H_h(Xk5f)QcucS-IuX-Qp4+3?H*(+JiU$F zJxT}Bc3jzOE!(u8nnlpN!DMR2# zdQW>f?q)`G?fj%8Wk!8Fdy66LL8D)YoIF2O0A>rz;+31TNLFdddpJwIhw}a4I%D1N z#>V1#lKNtf%EMb-Xgj#q2RaCS`c_wJkZk*?Ga^>#b!+uqVG3P2|LE2Iz?^b_2|US7 z2|xPxwI$SxD9C_8g#6<|y3yLy53u##F7c-^GA5#&*EZkO9&tYtAeeQlm%+WOF>&yf z&}}iwB02wRkBoJ%@BJCx;7An{b^2o14WKp@*7l@ndQXqc$zhl6&j!EKGD90(0jvDj#9_fc9R&NSrZ`*&Lrq$VTY)k}o4gb8x=XziQ8 zk$Mee-pd<|#s;nyI_j6CY?{-X)XrzI+ORa1b#FCywscmVn;jRP4n^jbW^Xxm3vupe zk2$vlRx%E?Hn47wiN$Sk`LI*8QMmZCjm*dS<7bw(Mt-@X&+?{jm~IbOKz z)(ks38$JY&sR2*M!tRIsiro#Jxjv4c93{<=#>-MfOOr``|E1o+*xSkQ<%}=eW2cvR z>`2M2)Qr~V25ZHD8js@*-KV#tBsw)F8dB0GQeEI$+Fptda7dy5h}uTS!@1U34xCz|NihI+2&NxNlMn6ecQnYQ;ujN)`5qz%we3) zPnzrK$xgeYhIgH;?b;IJ>GTiq=?*EIdHl`HAO}%VL6k0b@W$0vXz`TI&uBU^_^5}* z(9mhQEGojp4IL>+z5(V#kF(TdaR%7SB{rGS*tW%usr9z;bf z(Zk+je=8QBoC(j+@p>2Ruw(4>Fm(XcU*|udGi*HGVYHhC&ywDPl|A<#h?51k-)Fs; zU!kIO-ixLjR+n3x{@mz-x(iHz#;cVMlIHYp3P`3xmekI~S01lBEfkSx`ekfJHrqHt zxnUUoqM@D5p@oQqO0ZRB>rYxWx2*d#bm$V4l9e@~#rnwD8tq~O%=*zChdDi}tq|u^ zO+zVSV?Kjl1V5hQZuBVUjn$of=|bh!BfBg1fiI$oJZyC)I$C(;yWuL%aORN0)N}9{1 z4}3kuo}2v+R?K04+1T5R<7VnN?D1J;21rj=%%Wd;?bF7u)!3jDLG{$$WL(S!#~{_b zv*{pSXgZ(6cA#5SDO9bD!Esqk=}H5hxT^tJqbXC&vZJh3gQQdXRjysP+OLgjb9MNL z^iv+4*BUJn^U%_>Th!`h$+<7PU1^{ZdT2p%!MbL(JSSIhjIxGVDQ6(AB}T2NSV8)> z+v7@qr^Wnb$6+JsgqXdN*qch8ZqNJ&%l{iTbQm~1hngx9W| zI~a;I+|Die)d55I24X$#ZlCUl5_0rrC?<*gYJxi-7kG*)?g5b*HblK$q6$-YwU;J( z0+jHtJ+L+unaf_(@`pB8iKB1tQA-13^C9fvr<)6&Y%2Fiur5gN`035~{!FA&87Uu) z-LB$Ht+l;qe8A8&4f3sMml5taHsfAxbP)Cvghc`yW)-%To0xU?YX-L{=V&o}b`@+uW8vgdbOt%d~mY@P=Bd;7PYav(LR9Qc%1l_B61e(|U`g z&y>%FgMvU|e2sXzG!`u|-ua0ERb#wdLP}pk3LDvkrrl8R%515{-uZm9E1~eZq6#k< zzxR+|kn4Ghb@0T^Qa=E{Xzz(M_PE`gY2+2Krfqf^_wmoGv5DoYm(HDpWBmZ=I}&I$ zKXefWXxJA1x<|ck5E=Sy$d2HcbrgmN(^rtFS`(y@SEV7;3{_{OPLXfDEn?P{LTO10 z8DB=0Y+UcUtkPC`S|z+L;8~zm7;8{O_u`55`(!l(e(|3iTPDN3ffu~EKNZt26~I?> zBH$n+)p8jbUU`3xYLAo&JGR||jyDH(71~c|`uMu>iyY%!?Jp3jAZ0nRUjiXp(t~n$ z(Fx<(=BHdCl;HxaJ)->D8+67Y=iM|c5@N1}o{6hCQ3v0i!nBzh-1p=z8X~MhvS}jV zb+4u^=b&2j>Sim*n;pkc+Nmd#+89WEm=>6A#sc4~JpDH*HkOUK(_A@sR;VnLiv``8 ziT$?_Yey&wq`vl8_rWwpcqC1jMBWcm9YgnmYG*54B-?g`Rea>%-Q&*6F~pP(Ain;s zz(SI28mluxSRjC6c~xoa%5K8>fW;q!{&t2%7FG-cUd8hK)09n!3*aldGc0mClM_@e zT+Aa?YXeskonj#^a&xrJ-CJFvgzm~+=#cr~J- z633WgfcSx0Uzw}~>lk`vQFKx76OFSsv@uo^;W=Yl#?y<$ixqC#Fg7NGokyV~VVd;nw@Q7NL&D=wtb1NHV>C5E{=d~{HR*g=|~ zn}#&QNA%T%rmunHH-QT%R$BMIC(L2eO%2Mb*6LkpxE^7>pYbR+TdgEJoAZaz;-P4H zSC2p7qCK0c!JK3h2-BH3IY@>8VkG>gfA*%(h6H9t>o zrxgs$ONI@urx*nUVTpsWrLYiF0(kLpNX~F#)PfJZ@LFZnrPc^U`puG%GaCiKf;= z6)``kdt*ij*~*Og$s0SGH`upelugvc)R^E-%~>HYsm1(n?NiB{*LhK5J_b6>_d36r znf0;%S5qcnWh-0@#;!Zqd$LD0WHbr~)v6}h1dZ9vZ?i!H11-CILG;9;QhCb(b)nrp zmHo4*U*v;Erp;Q6H5*KtM(PPRILk9t&kN%7`qiSwjNFbKDLXH5-^gG-U+T<$w9Suz zv;F}so|d#>&l(+rm3nqg&ovydjhecq1QR|EdY&Ha)$3q!Y5wd=%Z1DXrW#L24@;KE zyQdpyoY1Sbss!tc-gpS?aU-_pT8^%UiQu>cM5vd`(50~q!7bU3IiV?}-Tkx;2w z4}b4Q5+ki7_VX9~t=fK!WU!!+(#W>mU@WySFvmeM>1e1dQV3(&wk|k+5RadY&rS3~ zF6KMS%cm{Y>*E0H{v)6<7}kIhfJxurpJQBKiI`aUvA!QF!FPZl?X$*=9V6K+XxMG@ z`q&w`YS$iz#%~h0un!bmPU(`$>Kn zIpNzEbaK5IeRMJyieGQK|LcD@rCU(lZ;Vot}JkZ=%93+ z7IC*(H>oY?SkUV$JX(d?x*w2(?seyw)vwL=)JQej9gM%Z(LXqLBn+R?q82<+b-!s! zpVge#?S_@o800+e-M_9{m=G>MCpdD4aDohg4k!hmh&;ztSTj@ODDv%N>~X}#Yr7Zg zr|?`g>7K9^dfT#lRA9P|LP+)z%we?KCdfR630^EVg;p|eW#fZMV%Vzl%`W`vj6qvA z)aC&Tr1d6K*oo0kw5yx?r1U{)Cl%W7O4Yf@mIxDxkySH^QuA#3toa{8EB!CN@1SC{ zmh?0jlsPQFT$LvBU5n;L{>6fVegNo4s&qi>=M8e~fE6KcOx-fbvS^sJPc zCc)xXsQWn+C)!f34I3#M59F5r;Y%x686Zs!Znm@Wd%c)6COwVOp465iE{K6Ft-0z? zsde}l>AYb|nqfmcWy_ zc|&!7fIQ)Ami%Gk4yhNFZTbF@QQeekhF@?=D>{cv7tNFLYT>*%uH|Nt!;zpD#D;(o zA!MXd{UajwPK>MKonima_4A@A?U7q2qElD?56+eM&l2P084PP*ry*I_zlNUIk)*xx zH1J~C*As_Ay@r)>T%MGXAg!<@xVrE&e;`W`CF@f%F%;6#z}_o6xH}3XG80owL*Dv8 z@K6F0gc)o~eam>9^)PLn)j3gF>ngo+gS$2b*(*^(&t+}lwy%RsRQN0}H~rBmJ!l(WqP|5 zdL!N0?DpB6hWeLMA$?`f(v6>7SB;4LzsVK6ADvf$7aZ*h>Lk{&-?v|tU{l~W#!Z<^ zcJwR4oJ#i+TnQ%$YruMopyZAHkZ-1RH`|ByauLcm&X|46Qmd9{nF#Rbx?-ebb>ysl+mKSSbJ zQ1nbmxF^C{&<&Vxg8Y|Z;Dc_zNY3(#>7zM>M+gUYbdxPzGZQoS<7{Q9a%q1>bVtK8 zZ^iDXrrh}vat}lYB@Eq^q@jKH#zOgpINuD`*ZjbN*j1Wse_}dY@e5lxngyBX<^E-p zdow`G)&RUvp1&Q-wUu2D$cwmR2o3UVh{9~I7;2zOW3plVwfEyjQ|6z5lkk^8n;i>LZ%*SyW;1l-Y|MI>95I`Da2lKP~p38;LZyOmJZRbZBl%It(G}NYF z!bCH_*PQEeCG$OSUxtmJ)|>RI+QLtk(Yh(TEQbLF(kwL)<~c^MFx4w%qZFIy zKTz}7k=cHtM(oj}e?$`X&D_-};p^|Ct3^;>-=-pbZN@$pvzMGwQvF_ZkJ^A~Qc)FLs(1kWW}yX1uAp(S>0{A&2TP#ad`Vc@sriz#r?-NJN+<5Q zAe@)!AaI0i-;bm(#?n9(p3nQnmb6=YO}mHR114kcKIp}MXL7kvIf?}$?`rtZ({^KF zgTI>$Yu32?lMGN7RA!I)d>{zaT}oQl#7}Q~uGlIi8Pvn`G?)DIek3 z@D|v+(`!XSnGzGQ(cEDm3MK5=JdXwW4@-)zAW#g4X~d$v3%@t60V>h#x! z^l=hKDI(SJlc>p(A!ScCMaW&Q{FN{a~v%ZaS&kVfK5yi#Uk(XF1p5--$OrhLB|@GKoN_!Lm86N(10%elx=~(+!Z(E1MF&#XX+3 z+LUdh;{l?2O+O%&XL={Tu4kU-a*M)v-U?$$WBgj*;g7STRvT(N_N|>L?5JI3^PqI!ul9%BA>8kiqncN>ChxLOPiG|O z_Bz8MBR3P$#FOwh{U*q1`esSv6WzfDHUIuLe-Km#LdB5&224EgB0=ajhYzcdX`Wyf zWMz>w9oeq-k?ra#lth3n!Cm#h#lP>C(Ijfv%5g)Ua5>L4in#V~LYt!AhDz)A-qJS> zw88$9Q_h~st2$Z7GkP`nwI=BmR=ElOE`XaNwQ%B{It_8?YoW#N%b%xK!%D(q6$Pa@ z;0=`%Z*QB1_KrjB-FhDm2)&xRdd0MDL0Y;xIcptnv>EQYym@JT@+M!M*TVZ>SM>Xj zufhKLg(Y{Gd<4py*Oimu5^ASxyU>drAB%Bk(I8wB9~jiTnYe9L{5h;TFn{&Yk-$eo zL9zJ)8lGt*%j#1(4B4L9FQ4be4Xp+@m#jAB*GIXV1P?t$t0WE2^j}{OJ*MBEIH~iW zCZ&fgXWe$xhlgS_<13X9jwFLM1ODU2HgDG5cXOW@xoMG_qm#iQ=zT1uatJdURx*d} zsV&^|m^f*jpt`H>&3AQIf6%@0p0b+~B!#W}$G02N75G#UR|D^TP}uZe?^WVRvn@#R znDLFH?Ty2#EOWocDl;jktA5OHK(9ii126O{1U#v^Tf6bYUbdW7eQq~%BU5e8^OvB0 z0;~Pe(OYZ#>ooSI4xrITS|g9-KbAI)xr~g>PqY>{{Pr| zp@Ier(PV-SA`Tyc!#%lkiqIPpyn)AqSc4SvDGdS!QHeH3;s?A07Y#DJO_l@qK7j6R&@WAeYb$sfHr zV?HoL*cE;?15;4w~tA)yjY~{Sl8bZImh$F_(MnWtop3H!U9oaV22@?@AmR|x3MgQx(>TBRrqMUgn z{g)mYeD#xHh+^DAHd9Ll~=AS!vT;bl7lPMSK=O z48H-VV1!mO`o}g0Uzr*-pm)*95^O_k87B}|goUbuEPI8OBwrsxq2TCC-I~7-FWQQY zNW0|KAJm08VAvL;2%y>ESN6ETcTQTD3H}2LlRKPb%KZd;3Dbo(JHrZK3FZ4dXZaI0 zFhvr4yXK^h#C|b3lfw&1X0Xp?n%X)d^M%E`Dy*fPG3dDscFHWc-PZnV$_OJ#8?mNZ z&S6PU^A4SnR%6(0dTZAwclWXZ$JkG}C+*jmKzXk-a0O^3pR*he9t z9$n`H|BE&5>F>=2M^L!vwX$cv2cbSo5_$4uS5OdYbmHH85U4x8ZTV65`Eyz4XMq#$ zNW^D&1|;JG(jXOd3FhgD{jD|&({tZ&sH+G)hs!m5HM;b{3vfDmrLcmLbd#_nUkfD! zZJ;H(R^LM-jPnIi*A9&BN1(P17*B#K=?+Pkl!pzH&8wOixDP}C+=xC{ z8MF--=v?d|>l3U4QjcFg-*)&;UkWuYIaJCwI~tB2%05%2d8jeHCg}b&omM&YB!Q

iG&1Yw+i3r{?j@3kje&s*}_)nCa+AURzw988ZdL{8y*mfm%Y_PM{oKpV`S6q zv_s-rxX6&gl5yvBeXA$IloWZ2vn|l9RKQDP;)cCOId_n%P!^pn-7u^yFL6>n6O>mv zRsIn&sE+mrWt8KEBM^HjA3h2T>OJPhIe|Kua_PGY0qDxPkH1-C0%$N*p=Ma4faN0v z=jd|gNF8`8`-ZZt%~Ydpfd#eb=umTO=?+tUn@w#lLrA zdPjzmQTSWHFDN4OdI%%v7TU?XRCi&&Q4Y8OWd8&uov?FV# z3kstKpF;#7nw*Ga9#$aB>;9DG%X245zV=nqTwUlc39*MJ0BZWl2VAR>-Pb*{O|u2e$+C7)?NdQ`Uv>RPYOeD z2-#TT15yTKbR=S1lSBTu1z&GzfNZ61(2>f}S~L+y8lj`|tL;6I{gV`WM1{Ig2n#rb zv?G6tklkR$Iye?!2#(m$cW1oY3Rd@#k|}#vkxlOf{h4yuZzMtF4$vM1Hnbg7lZh&< z2vz3Z16aa7xXa-Y$Rh$+{zGBl>0Cv?{p^S$P@Ks4qM%iV&_NhORA}Z64qn{BrZCyi zN|wrh@FQpg>XG|x59P|*9m$nH(uhFRLKe{tn84@$zt;4=m-j$R=`^_zH_Z&BPaXqj zefrP)`&k98gM;W&^r}mOz}3iSHZoI&Okkb>FcNlYNrlcz3cr;^VP-CX6oRHkx*xvH z>;hC>S~x$xJUstd+EXYghu}`I<37B~(*w-^1ie+~l>ioBJaq3%X^qqW+Ny=rl~OYd zp}-GvWBh%Q@(#86iTi4#`v5E23?Z_4$jP$@$Wm6Y%7Q}0i#QQ|`XTot|IL9Sg?nH# zmp)_?tnKgQIs8IPULjt`>>^pzUiHfcD0t;@QOeKWM^M2 z!dHnRPw}@$_(=IE;xRxDAZ4cF574DBO%|$bdDkJ~z$^X~Q-$lF0F3Mep&}_Nl@%!4 z7>p7(8`YwQx9<4&Z1Oj{a=IWf05D?yeT5J`(2XKKQNb)*F!lHzL4xr9p5@Cx16Q^3 zrbaEHX$REWfj)p;Zm;`6W$05_y3feY^KC5fZ1idH2IoAuZadK07;;lS*#xc$p=wYb z4Cnys3Hzt#*0gt|4pR4WnrjYX0YCVZyLAs5e5tYHrx>Urj&l87TdgGvQ-@Q14dw&h zzkHu$`UTf4T6@JBONteMaDW(KVk)2iW>(*j>nhxQ8Sk{~*)B$rY$nK8O|iVT#NQ?7aI!RXOX5-}x#* zrsx#Y6c3-RigzX4d;g*%(Udz5%Zah*(A^qnr`>WTYQ=~14Lx;?`^@FY4P;W7J%bOo zk63vIHN2CGJYpmOYUCk`NMN_o|I0^oMCSP;){d9QHsWkqu7I3~uLpn|Td#@=g`n9n za_wy2O=_wMKq-_s#~l*RazkTr6{}gT_zeSL!et4n6vCI8a`xpIO;_$gkAHo4UC$)a3pJd1|{W_YCE&wUU zbgAE`F!N> zBJ9lpB~<`ESi zOn_O#_g(L>+r@u=1}AN4z4E}-><~<#OlRVKReWq7I%@s(|KF?s?F0iglr#m?@_HBK z0-NIr_`hDdCofSCJ%@3@d^LFg1MUJZ7*-C_;nj}#zW1O*Q@)%f=uF;^`mx`PmcS~K zClA8fkZo_m@}Otck#ZVKXY!$g@~6bdW$V`e(W9gQg28vkyPoe9=MdwAERixgVM0j{2F7%v_hKx){8y}4q z)K*^i_fhog(}sZ8 zowNpO(y8V93yG#FqQ4iMmuX}S%ckyKWT`}}L|K7;94>zZK^7!U5(JC|N|amm0csng zuR1vn>|$ybNON7-2}=l_cu?jNcE z6Ij`GUS|gU-N?z${HKMCA-%A;RPvN8+64nx;JtGc*xVp+o}egUG`AjFBg)Fuz?CKl zS8sITS8Nq%@bfPRDcF{N1*&MS8gb|co)rp-|8WW-n@qe++GcF|_Kko;=E?AZMRVi& znYv$rNV*0=>b+#)C>^u8dc@-+?o?n|YBs9;)0OG1q^)BJ%9-X02Sx0zmwcb>5JJ(8 z64Z!5NPHS2I6%`jS9!?mJ4Z%YMhy**5ss9P$pF#s{3k%vKdXeWOmGM43-r#)Kpk(h zJYsXji$*3j3KNPJH=-^4(pv{sGrJQp6Plq1uJJD-v(u;ld#RMf{<{YAy7nhF87)FE zF_?jPvh*b#@12G&OqM>iNe|75b}=>3e4+I=9v-N)OzsO9l)0SMCtB!ed=GSx*G-BZ zgD?HaIO9qT2XO?`fj@0K)sc8~v;?0TR1RG!H2napOypDUqb>cL66y(QhBwZ)MOsQ8 zTP61SkIH<9=#^s&&E}|2vrBSW1J%oO*SUbJa*J!+DMY^)blo20{?jJQT;wOc?R3mw zvI(Y%TvaD|8t!ZV;Q8$x$;)y)F^+Zq5Xv>0X}Vr%E;rY>qv)@fv5`9go~x61!w0TTNGC_6e21YDhu z*VpDaf4K8OX7PN%?FFShpI!lFvFhvz{)+kNTq&O$R#yhA@Wp4XOQ7eM-M0*1^c~0L z=4S+o>Z^+IK<-WlN+KdoO8A+c6Tf3@Fq_-0-;r@WnVhVG^fR5!RXHqPD$Hqw5or!p zz-`iFtgSa6p5+ON4V|5~KQ zo%D#y3zmq_?1%zLf#O%y%7;XVebvWzGNx-b*=R>}M5R%}dR{?sp(pH=e%i67s236( z^~k*A^xIonY>hZ=rN6ku4x(ECs+nIY?e7en0K7EyyfFZbDdzon{rUQg&E9FB2^zn3 z31r@-CuwKq$d}sL-u`IRHC}-=r?=$=Cfk#%&4A{67%zHc7U|Qy-6Z1z^ z@I2er2J@OZ`JE~|07~oq3@1FJzQcyh3yn>4(?{y+03gLY!z@|J)L@HC1$=VrdB#$3 zOa_sK>S!=8C0qbLXGWkGOTkSUAgv4!6;5GhBO?(;JttGv&&7leg!jS5r>6UUCTfLR zKb-n@jpU`Z{(ksL^p~@AlXh~CF%t|nW(srRdOL)2w=RO(+S*4sQpX9^?CRY=u-l6XxO9v~k3Qe#g5(@|jR4tk zSeX*zylL{`33j_kRs~<9+p=vIIzxUmqpos(KfW{@Iw|+IMN>jZMttZ&Mx(=Dk>LU4 z+zkDdxJGaj`PYW7&64{QaB}T-ZzAY|rf3d+Wnj5v#T7bKf??&k7k-1HkW^PL!EG7Oxc0fkDbydfLL`U|Rx zknhjc;;^aYi^K80PJF8oWsQ2k*gt@UeQaMijY84k&o6Su$%r4^366yX!T=`B!^!`+ zipqH@^=)0!4`JmGtItPHQ{E@w4$7VlT_cn4foz>L)P?u0U_?Qq9;N~Kk_SD9OTA&+ z?n%IP#gmR^Bg;;!?AT$XPg?Qm8vlf4!!%hlf@z|+?*-EabG|rWq~;wi<-|teA&8?Z zeS_dkKd`(Lc-UfCDO>5yp~AN&2CPRGSiv%`f88GF(A^VH}rw;#o0-T@6B_BuQ=d}-oSL6n0e-SAsKM>&5U9cJY@Hs!ej z3-yS^#g`)f8S6_s!2psn+gtqv#YU8>YbksaP*4hQWkv}YaKRcl{5kRG)cx`B`{L}#-pdR?rawQ3^xZk zaOvn^7ek823*d0?XLH3;Vt~X!RJy*#lL>yOv-3v-UiZ)r$@iqpqYmu6_;=*uen{= zd?b7X{kb9MBlwpSut7q3RliO}&N`7)?OR3SHE4*;jigKAI&_%WK~IRx`G^;T)dtNB&$uESutN$RH|sRQtQ&1DYc*iSozl1Vu0cHtWKIHuXlbL-%+biJ@&x9km-d=E}jK)BajsG z%brw+-Hz>($Tb?oYmL^Gq|$ZtU0DFwXO@^r>WUKlBS`M8LBc=vy_*sQ_hFRw$wo%qRoU#>8sI7#KL#)=l9(VUtNqBR%?YZEP zbTGW3gZwU`WB1kuw*wfNItg!l6=k?`O~ts^x5xcKY8W@gg&;9rhh-p-RoqOa8W_ws zzZ_xdcRm+v(?Kr!lF^}kMT}GL!+{ZU0`$^;XUKo^+z!2h6RNM%cijsNfpK0(isH&# zzX`R%qZ18l;&6eWvAYcJ5`0xE)zGt-Y%7YhGe%B;nWygzHBSavbdXa(D_v4Thps5D zHeJ73rL9j~Yig{&;vPJhH02GFR&~SI{lrYfB9-J4470LLLq@Cf(+;Pxwj-QSER>rq zR}Ooi6B9aQh1eGU>+7y0iG8plH|@)KwAg|%0T zpoCxC$)CALn~6hvb;v=B4;*(|ET`RuW$4fk2SN6YceD2sF=oLFQeF;nd{q-JtE`P& z%BkwXHWO(;v-{GQuExQP4Um~GzjEUyaYe!4%48NoZk%f-%8fxzDP6v&ak>AfB82PV znTNv-kZf3%#lWio=>ADA0mK1-){(x9+&HJgvpq$Y_Fa_W*;bYj6xs(v5NT2~Xv2;v zSLf^Y!1kdjT!_eIQ|r~khwpK&ASFOk6@)37H(&rQCSLag7`Ecp>GU)PuSwGw_8^ryj@?cG zZSGg&Idnhpkx#yLxoQHP22BPq0$#II0uXh4PnQiV(ad_S{Kozx%WE6Lf$7KY|qc`*$zG!{5Jal6HUpE=5>^bvhDPus*uk7PxiUv|3nYS($Y{f)9{9jp?jaGo5PP=N`!pBMj!` znh8&53*83uupPkc-VX9LFzSLyXqp{S(U3YQlNxr0;<_%$mDx=e2j<@Iha@T91X=LZ zhVZnV&~53%zwIO@bbM2-8m%C7Al3@8qiu$6DTe$kRC-Dkn8}SNwCH_kb~b(QwEjAw zqaaWjm;D&K*OMF7K}Lw;`o7zXWt*Mb5&6BiGUX)c0r*TVYDM!C7}l{7as+?=mq{l+ zoYS67PqXNn5Zkda_-Hb5bTtRDw$gb{Qe?0O@T!4Wb_HLmQ;K1Ph|nZp;mlO^Q$m_- zjrff5KoQ(-qG5!x&_2=7O-*hm7rV`iXSl9_!_|B(aRwK8jN~meE!~~#79fY8_sVo^ z`zfxJ!yWQO6B=Z|($&DG%;wTPe$Bs+PV*)2s-)1DyPPPq2dXq6%6QD8vZlPRtZ;3w z?Rl6fiD!3m^O!V!H5GOq=6N zic%+zm3`%Q*T8q&xYd^)0Aqa%Dl|Xgxi9N4Ac3qEwYK~9+)8!|M!goT_0EF?C+k7j zCxreYrU(fINTr5pM{{ZwIj!e8n`#5u3p&*}Msv2X2M=$8=_7zgCD%z~TJw}?7cjS( z1A!xQbBp0z?ggz49M+I{i7ANS)S%vHMiMjSOPtp4sad&S20RzZOmzjzp4h%ZIsw*2 zfpL`Ms*T?}fEEO^suDU*lIPB^zGy!ABub7UNPx0{^`TQ?=^+ciR&y(-9vRY10yUc8 z-rc#n3tbiKa|^dj=a6LzLQqB!Yn|AX+h&Ylg38v})G+B~o_m$-K5jq@gBi_Wlrb2p ztji;(f>Sr!jTV|#K*)kIB0TH(KzwhQ0RE_8H4-O%x~*d*O@Bx<@5d1zjZIdmsj`eM zar2+)vSdArOEtk(JZLpD15o>;FGKV?reyry_e%Wqe-Ve)k;f69;M!*cubv;=t3u~8Ltkmi=kch?mY%CDC_&V zaaFm_Af*RVPX{T4+jFhT!qa#i>8ar1DOBpEh80{hLaAahN7 zbbFX3I; zUt7DgX7?&rHj<5ds$KgNa?EG9(hH6F5g>1o58eK5V9V;SPzM@Q*%D0(}ioQ7UKx)adT@7bvMfxe!QTgBoveaqi^|qz1ck zV?x14OBd6VCC=+9(h;$)nKt?rNDVIKT5!J;wU=4CeJU=%k1CcwIx;U+11~8-xEC%saUrFk-U?c&}>f^#Fr`kp7J0%^5$ZizJk_e?(oAs?(M&&SbiS4C|(3bJ*#+~!zs(ATq}QUvD<(D1Pbj!K%~hZ1A6=;wCy6xbOuhE zb>}J~mg>1MgIpm+CCd+i1eB*+EU!eS(O-e78d@X^AyKtJRX)!vq+81dmV;7~H zm=OO=_>&aQ9#VCNYvPd<@%iKGLXx2ExNzC>OO#-3C9E%pHIJ>OET(gJuEM(^t5A)xk27^gD6 z;*Wmkbzy$H@6&V2RKAAaCc;*0rHk$gW5=4Mk4J%iX9+tMEWYe@2Uu6=?TDh<*A)|- zF%*VDs)EeC2$?&)tulzosJLw$mjxlFi20`0JF~4_?e9~b_TUbbSR|+9Oh=vs>@+=B z4Hhy&m*TT++J-{mYl`ISl;T?>p9dblNU}JR$8M8vy70i`dHUe5aEjl*!f%(X7ALWJn!DG{tY$}-Ra30TBPJ4TIr=SYaJ2OtLwQx)1m^?eV37r^qg zyvaje&mlA7I!R!elBG2Yo$c0q@Y#AJ7WkJhg5Z5frx`URBo!7^h!t!SO{03zz zZuWnXM|~qFG=1j?WS&0GA#>N`g)<6lyar9#_@Jy+HBtQzs@an}N=sI9RL6!`eYhB) zJZdRVz=XMKw{%uK;jv*P*$jmypW&hlUW$06@ObNyxiy5&kib9b_DdswaP8;0mUy*L z$M$@4z&yvycQstc3*a=PPj*>Z`*C5(FN_FGMvJrI5xV2^>`&VKCd>LX+Q+~!aUi0y zVEdYDQsm`}4esomkOJ7smzM#`T#ZdJ+gi+!eHh)6tKnvqEo|)Ut-GGxAa83*Zev|& zE>rc1;IXdQq#(^T2g6nMdeS+ynu4wunGbyIj;QfxyLXDX0YBj>^+0%}<>>F2!>$lx z7`(~yhX(q}V4~$rF`9Wi2fwGts|*BF9>wJ=4XH7XECn31SCmB1L!bki56X7GPvo}l zFNCu=S>cH}Fgx_2VD9}gbAE}p9>F4a1(GVoRx!tnB+4dB0FptiCX~>+LE>t96peDR?F)3lK7y|!=+N5y#mDHk<>zQEhJGRnX4*@F z95PAq$tf)Rn%7nWwuK|Bh)IjD*&E4%V- zFI}QNSv+#4A(N(~H|Ub+e=?EBkjCKb2-8IWP(_3D8j$&Em~>2f;F>@;{GOfhy%{Nx zB(rV~sVELRt`?MwkG+js)PsgNXmPLAL4!@RGza9@%NOO)704AI_{bl~N}r4H=M15Z zH{UtqDHmY}X^l(aN}1*|IWQ8~@n&5-n?s|m@rKLYqqT`nctoqTy#QsVrxXUY%a^Sea8o<)7+tE`0H!fe z1^`1l!TN4k>*qcQsttLy2cZ}+2>=zGJKX}00}Ph&l$z-F=iG?bk2yICq`L8<-jCb* zDK$V9^u%?C=xK*l@`-UZ2Mp`7r!b#v&$szwoW=W)G-_z%vosk+eykwl`l~Nfb)9i5*RB~%p9GW~zl zrY(xkZ9mAxes*i}!}&)IMZu!yaB1<`%xXv9NmYf+74#d3_X}<^uf^Nq`=yK+AIVI% zRd&7Q?dfOr(G#y&|2}?PfKeK1X9x~vaA-HAATeGzx+*C)v^X9lb<$XqBRem6m7mdj z_7GrCHWPeL_8`Fo2Sf7HqZAbr%_UE%S-O%RzIvVV+IGR187kx1<2v4urUxSEs$h7S zWUhlC`7U`V3OFH%P+S5pNZg!`oPbu(+RgzEU?$-ft;H^g?h5rxQ-RO5n&|6rDiPEz5aF1LL=8^t(^t?`pY|kFoWJp$T12QeohO);N{chfHL+vPB68qrgg>2e5U7S^+uN};kFS-YqZ zPQoQQ{;Q|wPPL|QF!qsZJ*<1x4AG^Ne<8Fh1}B3jJX{QmP~=d4k{25EAik_meJG~& z?)1a>)*iwrJL4mX?VRrKJ$1i{D1ay|-Q=~6o@1Vy8`%bW>&oJK)3ZJP4HQ397t`I0 z7;sd$XqZdAEz~N@oAg5rjXp?k?*MX@sRw!7jZ-Un%i(ttd)kQ@8%eqZXa}~^2ah(` zRR{>NdlnewkJK4m$Lnws7^Ov(3L8a)R+uu=TtC?6nz}FT28i!Hwy5NXqnR5Ej^(o!zIo9!-HDG56n#y0T3wp=^iD(pVO9?^Rh#?Fd@iRX9!FP<%WW<`VbF zD`3Weq@g-#^CuR7Eic3L2mNf{R0W`HQL1*64SEhz^cJ?9CS>l?UQPSJRvyL!ED`R< zD?`O}qC<$zoSM@2?Hl;jOuGuth6p23uAPRXv>-TF`>LLII$Z<>-PzGlwPQ`6y)jbw zN_uPh&3;3z=j4?>1&W%3H`cs>i({i#VJhd$WY8DF=qmJBJuN~;$STROw7bbK!)bZ| zcMJDmE&!<#8`Rs6Q@O4Bg1Imq7^&algy&9~HaPVz_M)l+O|(gDAlBM)=Er!&yy$IB z4+SNWrAn_dM!53dE)xeB?Uj`#mtY;FRIM z$bG61fyfR~FY&@t#+bqdN=mvKj}D*btSfzhk@pTBM+R?w9iR z5;Eo@oHVNcXyIh&>q&}YilwSt%YT4$aGI@n&_UN=%+`_q?sJlEEJdVLe1>STbXdzI z(J$O_$6ME>v`=*2;;%0BoTO$HB=maRqGEq1U2||7-&-F4C=AcwTRQYk+H$O&^jy6p zY|B>PuJmo+Bw;j8NI>417K2#y>gFLnn;NHnT;18vSF_EnT69TE}`W&u3HXE z9PD$OW=!u27hc8MIERb$1J6;unkrr0`&ACRqByH|rxfK4?OD&;%Q{x&zq@PP_c>$;A2S{#%%!jl zK7Kq&Z7p20X{dTmfZRQHT5Ga_;B%VL8+vk0@&e+SsAt~&fTP%p9>%B-OMnI}#inO4 z$1)I#B^Ngl8Xg|8uIct(QL&kLqbYd7+PCa5Sf|G4Xw;S4txNjSE~L6wgdnFbG7VqT zHSPFYQP)(B<(E;(#VCVl8ECtacm?nM`EREQEqg^MfzX>;8dhZvkzX`kp2Hpv4G5`_ znBS^9rg=SV(RGohHK0vE^<6=ChW`!)CD4%SsNRiD9e%oe$(!_kqN~EAQ9&!ho~1k? zK45NpRMVq%)LiZtt$NyfFHKC6A;v1{j1}=NAn=}3Xzg2EW5!h_ni^Zd!nl;<2NWPL zG{na1maL7Xwsj4n=Qv*Gk+hwTROgZI+`bu7AvOQTOe;a@iZ=3t^tL$yii} zT-zngcV#y?@k3tRu8S#e4|@naM^E7_x(v^LIM<;FD2{Vu@^5Dgc{1@O2Zk6*ZERS6 z#vG!g9f3`w->&J_JHUkUjE4`u#U=D0G8IQ`$P?*`7l;RLfNBEAuBY0)4V5FlmfAK< zYH=%xSF&60&wfUsoTBD%4^gYb6IoWYAqa0Synf|L>D&E^E~yb02-th}YVh~>0sz@w z4=ZcnQxyfxwBdk*18HVD%j*sv->23`NOneTa_Bgvv*^WxL!}$=g|PNeBoHOwNclbr zIqd?cO}|Qu5eC{xop)wieM_E9vin82c^1JD-cRwueE#0roeN_XH4iqT3A5Si%R3s8mfFZe`B(BW4U;r_Fga>{ zP}iJc-$)=5OonMkvH{Lgyl9fP)O0>762>Oav~a6}iQ^eweU4{^Ny&%M{EPC5VB!9I zv5JpfZBS?(fPFQU?Yep1-R4kBS>95P@6e9-dY1QseHO#2NKnplJxlN2 zM=sp%vK*No7sHDE80xC^XnZ06Tyz7BU7lQHL;Az1zG;3T4X?s_!9^1suS1m#?3r&_Sh=c1AaP8S6OIyZ;gKiD<$2%WqBG{N~^r;_Qdf;D6 zvF=DJWfD+XxjOfCewRbLn6@?~XB#Ns|0uht(9GD_^29P1mY2|P(){sP@+?lsTt~Pn zH&Q?U63Rp$zsOnF!HSz1O8f@9_emoXx&}D8o{5WAv5LCw&^~YUI0@~?xr9BRmK84& zowNC7vK}0v*S`ha0Oi2$ zdtIM6n8+>8RhYh_@bjU1$mdbGGr%|;JX4YvK_{5%1Kz38TzngWVu*Vf>%4AsP^C?Q zX%n}_bX0P!NYULmFsa0gtfOv&$+zrcYB=p>!zhPNqxk8SHe%E`^p1CDOu^`E7K<(m z<>`YqWIi$t7e>5_P&A;1ob%Y_TYz zmwRen;?zklwhEct=R=9oePwaL0^I>jnYF;EoB_TV*lpe&NHo2R#|0?mz~uSL8TAx% zqeD(*`oJ>H$1LfFyJF=HjG}nTDMU%^Z8_i?>jMfWpENrVg0I?c6}Yl;D(2|@)MM&I zdEXWOcsGU1psdzCmzSgk6{kyTFHi4o0f*!a&Vro8+IOYB>EzA@U*NMZDbwS1K5{Nj##EohmOrf)-}>fPvM%`?PUgCPA1%D7Fx?DLYypazcE)^$ zcZ$-c-Rj!;;(KM{Ma?$+&lZ%M&kD6c_<)6ggm9zTKuL@(Jv1Y|iF8{N-7F~Cb*_*o z#g*E;a+-G$*bGS#AzY2z zVBRR*^`ipkl38l086-J#vCo?qBH-5JY7&H?#$#^8l#8$pcU`eFd#X*7d9^cDS#5`bv8A?mGjJV>C3A0DX5FZ|O_?Z7 z&Z5L|c;q3zLoM~7vYYrq`xm7-_-=hTyENEd zpXgK-%dhB(_Xiog5ETL;2oc(0Tsy7~fmxb^0MVCau3_Dn@k0*HB7s?|2hnlB0S_E5 zGtj*wV|9IkUjYE8$mP{40$c68K8sti-MiZGJY8BAy%2Sqa^#}jp{0>1LJdQsbdh|w z;ZQbhIaKJA0R^5?1z|gr+;M7gqGaSU`5x-lYXY6kfS)uk_%OaIEw@^l3FPH`=1+*E zjr>aHM131m0bpv0$z0}k~b zSKJpjC)FvAp8>3{GBD$NzwFjF$IDaMOnFw1s?fHG+&Z?#43g){bMd0r@!1sj)IzaW zP~4Xm-yK_RH6}iTh@OcfS+K~DS~>u}!==;N0^AY-cU}Tp3R@GSJQ6M=4jd6An}9br zMbV2>3;=wPrPB$3Z7~2S;-L>`CLP=|*Y1o1ef;&kW0e%fW|8y#c}$Chkj7y(M&)v? zgw{6a!2vRlG@5urE<`(yGZeO_;ky0-p!aOG!yw8$%B7%8i8JcH^+fM7(y0g*>}X(B72hXd^5r&Gum?( z?r?`3TUm_)$%pt8ny2PBHgTdjU~WFTri;?5vK)I?R#7%_^L@}LI$=LjFF$YDe7a_H zPIl{~T=Ci_PBnU-j7aPCQ9-kJNO9w<@3F_+6G zxzdL#u%K6gH!iJn8O;Ye_}PP);BW1qL|n9aT6<&3q*9d9ze<>pZ{i55)r~&T$bXdx z!Iee(gGzm1RSi4#0Js;nj-v<$IQY#l+PQ){9Hl~ZN3dY;A*S#e>Qx}~4WuO&GClCD zRFR&V_BLy?OBK-Eta&7ONuMUZZ1JM0|r zSv7>17(@xe?5~QeJ0D2J>60A$&~gSlGc9-)fY>>~S1X;@ZHI55FZ?g}o-PY}N#mC$+t~!J6Gl1_Site^!hRwCI}JU zW>Cspq?`-y`h#hCnc1||j2MVkRWiYs%L zf$C=vDZPTz5W$Rt-M3d~&g;--W4X z=GpWiI+Jqyi1Rh~FB@cn+#49&0tv=6KEV9f9pMLYokoCqEwL8kXH~bq_yhznX zJxv#LXwP`LPwhl#(~l`XpeIr+DXXz!=}wECCimKFi(e5)w)uW^aHML+rxbcQ!J_sW?=)%% z?HvkM!XDp!qPmlr1%z4~fb?9?{CHZ|%K+|^7>|ewf<_`&el!b9!`hC90hFaGBE%n0 zQH@q&h+8FF+u6xcmj}-bA>FMJA$=)GftN8pAv$;pKr~HezdftzBZCQJUW22Ed;ET) zA(-uE?Wh0CZGLxg~lJTlLqvoluDs;22ZSL^83QUWt5I_XA@`)u+ziwzN<`ZiN zuGzF>5?=bji0L052IYR*bdQqW(e7cX2!q$u$@87LoMZ6KZ;CNI#T`3To{ye*5u9B z^>(1&SZ|DR>gjLo+8V!LX#|xUW5ec`c8lrT+pMNj9gfTxN$f)E}*|?(_BX0ANZP zp#c%D`dT?^AQ>whoC_sOqPEEoD9l75XH(ezC*0HzuhewLNS)XA{>DU4U+W zseYI=Dp9M5o)|z5$Y5F?sqNf?Vb6a|2hk9!l-I7u`wJ)1@jwvsuXntg(udD5wD=zK zse$fD`wjp*lpJ~@8YvCr$2Mvyl*M=9Fd{?|i*pgevTS%&T=qbeEWe{Xjo*+?kJe;rGnbY41B-o~@) z(t6O@GCYD>SxKM%v7ztaHdpt%&FSW+blTh;p@KL#8hluRmd7TU5Py4adWlH+HWHeW zaC2L#ef5%nSdDA4olgZLCqqJS*$QlJJ(eDY*zGJLY;Moho4V1VxIGRs%Ig7; z{O>t4?Ozwv+LD&zW^*rqSo>YSC+~l>j(8pGu|I|ugd3gXa&eN__gLJwHaF_AM~d6l z)ZM-cCeT?-UK<9##! ztTCjE5h=sH&W^K^yjlpVrg#xB|F{oOAR(uF6G23Y?Al!Vps0%}2>9V!KmEWAZoMrt z)YpOTzl}PwmXSVq|KO4H;w3PlJ$iTh5~Z9`;VMQEQbl*80nH{jPOjJ2A*Ig{9K+i% zH*yhF2(_=x3~rv;($9AZ-i|T7KtPuEW5QC@f}dsJMwbn;Tp-gpUb17K z1lwX-z`;5P<>m0CPB9A)CC72RR9Z6vtdxPSs1Q-Kd9Gf-cnsxJe;viKKj87$T+ds} z_S1yQ=hK?8^)Bzi8u^C0QWK)tMG0X+=c|peVg;9_rSr4};?<(n9O^fDfREFUuY@JC z$YBVhPOR}ezn}A}{f2$TZ)vn~W!MTIc_4l8k0Vf&A6bDie#N|j8vHATq4SDOKmX*s zwNvHi`bwuBMya@T;%i(4#qrgGhUUvxRmP{2{RD_9;cW`40Uqu4O7Gh2rsla)3*s8= z{G(KR>k8L@G-F7o{QoGQ30&FmC`t7Bin!!GEnh}5uN~@K&u0k@-X&RUt?0%)>24hL zs75`mY2uqHtpe_aqwCx66Z*dSq`r-Kw$Re{)N^*B@wFQzwu=S{O=U6L2Kn;_&dz^( zkYT==(-z=el|SFGNf*f2@LwEh(iJ@Q+9O=WyxiFdQTe2b5l8=EwPssMROD8&AFr?J z3vu2`nXxv66lW2KZ>+?M9B zcwx0t!>-*tb1^G$M#=Cj4X-9#9=Ke65DfaS|4ouYc5GoeYPe^%h&f5v0Q2-<&TZR? zSY+FYogkE-F3>fAruHlG70^ay7&Np5e8(!0(##ReEm(!Vrdn1^*qJp;6x0KhGr?0X z6JHf-s8$Y$u(wPltC7RG6gl%i+M+z;?`w}defs3S zc7;%5Mg~zxk@L|Fdw;x+FE8oM;PEZ$SFqLX_O)r=EtqjTN28DBY*AnLFKv|dFs4*6 z?03g5EslgwUyjr>)y$vlPTvUf*jkv9sIv5w_4(A?3mPD~)#!@ToepE{4g|unq^Eu9hPE1PM-F@BEDN{Ic_7zYvJ%Ag4jdS7@(16|g~^x;91uNzu8 z0g2?~fl{c_=Dc2kE5pZ32X+PkU_1F|v1|Y}8Uw`yb`%d7_IE39>4k@RRt&f(JrWxb z7?)VD7&tu5!=mzidwK6{2c54{_F_OLUhKpf%R`c00R@5$_ru$)3gwEmXlfa|Elo4* zY~!nOiib~~rO_`ml#1XtLK9~nAUb@!6?dc_&kVT?^ySk0>&~}qPMrT9#G*Ob);i=; z`LXNRcvmhh{9TII0Oy|CciEu{n{#be`frG^%xMd?f)JD~uulNKvGaP!}3L<7vV3+1lTd*v(^IM)-|oT7&C z2o|4yh_8UJ7Ioj7LE1=M{f4D(V|`uHPpLQx%#Cb(ioZ2j+RKH6gAyR51{{t+_d#rI z5)@$`>AC9QbgQ*+Yt^aZGF_pPRc}G_KZ$Ib%B=u= zzlovo>E?XA#nF~uvj>W6p4@O%wuGr24FkTM@zKmP;0RxJs1hhvvTG6!x}xah{Y79$ zVAxMHZ5lh+KU$79mV&@joM7T<^hT6%QM$DJ!3I~wR9Wea(pYN(8ySFGv=^sGc)RBgZ{%?-0VH*xv#_XQV_DL3pUo39Ayi0#q2pl0dHW1u6eZ-$RaTm-vz8wQ}Iv;U6 zJe=Qz$;WYqz-wFSr`PJ3SN3oIOZQ5^y5lf%b)Oc0b>NibPw&a?|7dx$ShkYkPw6A# z_Psjlnv1C%8aR~xM<(6N`Wtc5{}k7Ahy3UI`1dQ|-C@Xo_U->vcJN0D^zURL|KFR1 zAI{n^rriUs<-e5wvpx9{N~4s&}_y+0Gx+dJT?WGkiz_b`m%tDLk{}RLD{KE_!Sq>%}N2`NRxJ(vuz?4~=R`JYB{Dlqa&mJ|k6>>Bt z>)TZLaHM>+f;!B{D>DYGtlf3k zXOjv#x#mw+REjSAfcuBf6INmi=3L`((9@O#l-%cH>7K1-H}?U#DxcIj5XH%ue~1st z$HK?X$GSB9I{D=>W!}cVJNi6QV%-1dZ%BG)v3_iOwVYl9`3z$LNzV$5gLOK8bx=7E zImW=NxWU8sBUCAeS-VpirM{r-;22^E+d9O?Xavb;=Nr54^^&tupb^*rJ3$ky|F8yX zy+&E7{tSVPfp8_**n|hf;TD99gI|c0)V{YHb>r3OIY3<7cVXo4X(5-)cA_`V z4#$Cei8BGLqQ|3T?^fAu{z~3Iw`h>2%lHptyxe#waVmB{g0osCgp*cBDQ2iBfN4ee z?D9dFgdF*+c`UBmd7RTM+b7&}fStF9VB%%jvab4;Q7{|LjWfa_9Z(^L48`e@8qM^j z`Zz!t%>t58Bo-8Y_E{0DHumSJ748!U zrpiZe>iY5RwYs@i3=`~rYarhbL0kx=;2xa))N|=WbnQ{b_7`WL-n^Pyn=%@2h-~7| z^Y3{nlB4hCxUN=hu^P%0*FO>3v3)>)N#_j^<{S?&&cj_*g*Sx#{~kv15i zboIagfc-b}hGok#G?{Ik)@!yoL`2*$HKf99UZ7+|YvtU=m0;7*r`PMucTJWDJp86h z>dTl7!ohF2N9)^f$Yq4k<-5k#??coy{#U&(-Es!ZWz1xxMm|N9+^f7--_$rPBjDTq zUh=#H$I)sOE`-|P-@m2DWv~~zEJKx9nH=#M8EugnupVh$@UAnN!fYqGhbO+A?PpN4 z{QKbM|K^sX8z-|O<4)JI$Lvo9zq70PB}ymqJAEx`B6oWZ7d7P`l=$sEFXLZ(?7vt4 p?ScRHz<+z-zdi8R9(aT=`280v=ieUWdmTK`(=pPnyzKDX{{vug(=`A9 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v2-300.png b/resources/profiles/Voron/bedtexture-v2-300.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6b27bc80793a989d59ee1880461448408a0bf8 GIT binary patch literal 223040 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 g>Q|LDI{O`N7Mekvcnf+Y&lgs7*2Q}d2bN~PV literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/bedtexture-v2-350.png b/resources/profiles/Voron/bedtexture-v2-350.png new file mode 100644 index 0000000000000000000000000000000000000000..1c511b35b16d4ebd0e7f33e300c10a7eec8d464c GIT binary patch literal 256895 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/printbed-v0-120.stl b/resources/profiles/Voron/printbed-v0-120.stl new file mode 100644 index 0000000000000000000000000000000000000000..ddadca2a3e7158ef000a14282b10e6a6df01118f GIT binary patch literal 32284 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/printbed-v1-250.stl b/resources/profiles/Voron/printbed-v1-250.stl new file mode 100644 index 0000000000000000000000000000000000000000..ea0cd01974384a49fe1836c28d2b0abf4000293f GIT binary patch literal 44484 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Voron/printbed-v2-250.stl b/resources/profiles/Voron/printbed-v2-250.stl new file mode 100644 index 0000000000..84835f5a32 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-250.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-250 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 -0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 -0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 -0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 -0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 -0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 -0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 -0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 -0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-300.stl b/resources/profiles/Voron/printbed-v2-300.stl new file mode 100644 index 0000000000..dd1c028c01 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-300.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-300 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 -0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 -0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-350.stl b/resources/profiles/Voron/printbed-v2-350.stl new file mode 100644 index 0000000000..b64dbea961 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-350.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-350 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 -0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 -0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 -0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file From f7662682c85126a2164d564d9bb09f7d0beaecf6 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 5 Nov 2021 14:46:44 +0100 Subject: [PATCH 067/130] Tech ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - Modified ImGuiWrapper::slider_float() to create a compound widget where an additional button can be used to set the keyboard focus into the slider to allow the user to type in the desired value --- src/libslic3r/Technologies.hpp | 19 +++++-- src/slic3r/GUI/GCodeViewer.cpp | 12 +++++ src/slic3r/GUI/GLCanvas3D.cpp | 51 +++++++++++++------ src/slic3r/GUI/GLCanvas3D.hpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoCut.cpp | 4 ++ src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp | 23 +++++++++ .../GUI/Gizmos/GLGizmoMmuSegmentation.cpp | 15 ++++++ src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp | 9 ++++ src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp | 4 ++ src/slic3r/GUI/ImGuiWrapper.cpp | 50 +++++++++++++++--- src/slic3r/GUI/ImGuiWrapper.hpp | 31 ++++++++--- 11 files changed, 183 insertions(+), 37 deletions(-) diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index b22448a88b..4f5098d592 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -74,16 +74,25 @@ //==================== -// 2.4.0.alpha4 techs +// 2.4.0.beta1 techs //==================== -#define ENABLE_2_4_0_ALPHA4 1 +#define ENABLE_2_4_0_BETA1 1 // Enable rendering modifiers and similar objects always as transparent -#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_ALPHA4) - +#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_BETA1) // Enable the fix for the detection of the out of bed state for sinking objects // and detection of out of bed using the bed perimeter -#define ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS (1 && ENABLE_2_4_0_BETA1) +//==================== +// 2.4.0.beta2 techs +//==================== +#define ENABLE_2_4_0_BETA2 1 + +// Enable modified ImGuiWrapper::slider_float() to create a compound widget where +// an additional button can be used to set the keyboard focus into the slider +// to allow the user to type in the desired value +#define ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT (1 && ENABLE_2_4_0_BETA2) + #endif // _prusaslicer_technologies_h_ diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 00fa066c9f..1d4551f2e4 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -286,8 +286,12 @@ void GCodeViewer::SequentialView::Marker::render() const if (width != last_window_width || length != last_text_length) { last_window_width = width; last_text_length = length; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } imgui.end(); @@ -3379,8 +3383,12 @@ void GCodeViewer::render_legend(float& legend_height) ImGui::PushStyleVar(ImGuiStyleVar_Alpha, 0.3333f); // to avoid the tooltip to change size when moving the mouse +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } } @@ -4115,8 +4123,12 @@ void GCodeViewer::render_legend(float& legend_height) if (can_show_mode_button(mode)) { if (imgui.button(label)) { m_time_estimate_mode = mode; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } } }; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 18618e930e..1c8a362c01 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -722,8 +722,13 @@ void GLCanvas3D::Labels::render(const std::vector& sorted_ } // force re-render while the windows gets to its final size (it takes several frames) +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) + imgui.set_requires_extra_frame(); +#else if (ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) m_canvas.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT imgui.end(); ImGui::PopStyleColor(); @@ -734,47 +739,48 @@ void GLCanvas3D::Labels::render(const std::vector& sorted_ void GLCanvas3D::Tooltip::set_text(const std::string& text) { // If the mouse is inside an ImGUI dialog, then the tooltip is suppressed. - const std::string &new_text = m_in_imgui ? std::string() : text; - if (m_text != new_text) { - if (m_text.empty()) - m_start_time = std::chrono::steady_clock::now(); - - m_text = new_text; - } + m_text = m_in_imgui ? std::string() : text; } -void GLCanvas3D::Tooltip::render(const Vec2d& mouse_position, GLCanvas3D& canvas) const +void GLCanvas3D::Tooltip::render(const Vec2d& mouse_position, GLCanvas3D& canvas) { static ImVec2 size(0.0f, 0.0f); auto validate_position = [](const Vec2d& position, const GLCanvas3D& canvas, const ImVec2& wnd_size) { - Size cnv_size = canvas.get_canvas_size(); - float x = std::clamp((float)position(0), 0.0f, (float)cnv_size.get_width() - wnd_size.x); - float y = std::clamp((float)position(1) + 16, 0.0f, (float)cnv_size.get_height() - wnd_size.y); + const Size cnv_size = canvas.get_canvas_size(); + const float x = std::clamp((float)position.x(), 0.0f, (float)cnv_size.get_width() - wnd_size.x); + const float y = std::clamp((float)position.y() + 16.0f, 0.0f, (float)cnv_size.get_height() - wnd_size.y); return Vec2f(x, y); }; - if (m_text.empty()) + if (m_text.empty()) { + m_start_time = std::chrono::steady_clock::now(); return; + } // draw the tooltip as hidden until the delay is expired // use a value of alpha slightly different from 0.0f because newer imgui does not calculate properly the window size if alpha == 0.0f - float alpha = (std::chrono::duration_cast(std::chrono::steady_clock::now() - m_start_time).count() < 500) ? 0.01f : 1.0f; + const float alpha = (std::chrono::duration_cast(std::chrono::steady_clock::now() - m_start_time).count() < 500) ? 0.01f : 1.0f; - Vec2f position = validate_position(mouse_position, canvas, size); + const Vec2f position = validate_position(mouse_position, canvas, size); ImGuiWrapper& imgui = *wxGetApp().imgui(); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha); - imgui.set_next_window_pos(position(0), position(1), ImGuiCond_Always, 0.0f, 0.0f); + imgui.set_next_window_pos(position.x(), position.y(), ImGuiCond_Always, 0.0f, 0.0f); imgui.begin(wxString("canvas_tooltip"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoFocusOnAppearing); ImGui::BringWindowToDisplayFront(ImGui::GetCurrentWindow()); ImGui::TextUnformatted(m_text.c_str()); // force re-render while the windows gets to its final size (it may take several frames) or while hidden +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (alpha < 1.0f || ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) + imgui.set_requires_extra_frame(); +#else if (alpha < 1.0f || ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) canvas.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT size = ImGui::GetWindowSize(); @@ -2250,14 +2256,29 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt) m_dirty |= wxGetApp().plater()->get_notification_manager()->update_notifications(*this); auto gizmo = wxGetApp().plater()->canvas3D()->get_gizmos_manager().get_current(); if (gizmo != nullptr) m_dirty |= gizmo->update_items_state(); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + // ImGuiWrapper::m_requires_extra_frame may have been set by a render made outside of the OnIdle mechanism + bool imgui_requires_extra_frame = wxGetApp().imgui()->requires_extra_frame(); + m_dirty |= imgui_requires_extra_frame; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (!m_dirty) return; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + // this needs to be done here. + // during the render launched by the refresh the value may be set again + wxGetApp().imgui()->reset_requires_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + _refresh_if_shown_on_screen(); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_extra_frame_requested || mouse3d_controller_applied || imgui_requires_extra_frame || wxGetApp().imgui()->requires_extra_frame()) { +#else if (m_extra_frame_requested || mouse3d_controller_applied) { m_dirty = true; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_extra_frame_requested = false; evt.RequestMore(); } diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index e521add98f..71f7131003 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -390,7 +390,7 @@ class GLCanvas3D public: bool is_empty() const { return m_text.empty(); } void set_text(const std::string& text); - void render(const Vec2d& mouse_position, GLCanvas3D& canvas) const; + void render(const Vec2d& mouse_position, GLCanvas3D& canvas); // Indicates that the mouse is inside an ImGUI dialog, therefore the tooltip should be suppressed. void set_in_imgui(bool b) { m_in_imgui = b; } bool is_in_imgui() const { return m_in_imgui; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index b148196714..d2c32d488a 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -167,7 +167,11 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_Always); if (last_h != win_h || last_y != y) { // ask canvas for another frame to render the window in the correct position +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->set_requires_extra_frame(); +#else m_parent.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (last_h != win_h) last_h = win_h; if (last_y != y) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 16856a9e3a..fcdecfaab9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -170,7 +170,13 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l float slider_start_position = std::max(position_before_text_y, position_after_text_y - slider_height); ImGui::SetCursorPosY(slider_start_position); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + wxString tooltip = format_wxstr(_L("Preselects faces by overhang angle. It is possible to restrict paintable facets to only preselected faces when " + "the option \"%1%\" is enabled."), m_desc["on_overhangs_only"]); + if (m_imgui->slider_float("##angle_threshold_deg", &m_highlight_by_angle_threshold_deg, 0.f, 90.f, format_str.data(), 1.0f, true, tooltip)) { +#else if (m_imgui->slider_float("##angle_threshold_deg", &m_highlight_by_angle_threshold_deg, 0.f, 90.f, format_str.data())) { +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_parent.set_slope_normal_angle(90.f - m_highlight_by_angle_threshold_deg); if (! m_parent.is_using_slope()) { m_parent.use_slope(true); @@ -182,9 +188,11 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SetCursorPosY(std::max(position_before_text_y + slider_height, position_after_text_y)); const float max_tooltip_width = ImGui::GetFontSize() * 20.0f; +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(format_wxstr(_L("Preselects faces by overhang angle. It is possible to restrict paintable facets to only preselected faces when " "the option \"%1%\" is enabled."), m_desc["on_overhangs_only"]), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->disabled_begin(m_highlight_by_angle_threshold_deg == 0.f); ImGui::NewLine(); @@ -267,9 +275,13 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->checkbox(m_desc["split_triangles"], m_triangle_splitting_enabled); @@ -284,14 +296,20 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data(), 1.0f, true, _L("Alt + Mouse wheel"))) +#else if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data())) +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT for (auto &triangle_selector : m_triangle_selectors) { triangle_selector->seed_fill_unselect_all_triangles(); triangle_selector->request_update_render_data(); } +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } ImGui::Separator(); @@ -310,11 +328,16 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 4e86b562b1..ee7a610824 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -441,9 +441,13 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->checkbox(m_desc["split_triangles"], m_triangle_splitting_enabled); @@ -460,14 +464,20 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott "placed after the number with no whitespace in between."); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data(), 1.0f, true, _L("Alt + Mouse wheel"))) +#else if(m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data())) +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT for (auto &triangle_selector : m_triangle_selectors) { triangle_selector->seed_fill_unselect_all_triangles(); triangle_selector->request_update_render_data(); } +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); } @@ -484,11 +494,16 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp index 6971e7cdb8..b4378319c4 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -128,9 +128,13 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit) m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::AlignTextToFramePadding(); m_imgui->text(m_desc.at("cursor_type")); @@ -168,11 +172,16 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit) ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index f2faa29d0c..9170db6039 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -644,7 +644,11 @@ RENDER_AGAIN: if ((last_h != win_h) || (last_y != y)) { // ask canvas for another frame to render the window in the correct position +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->set_requires_extra_frame(); +#else m_parent.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (last_h != win_h) last_h = win_h; if (last_y != y) diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index a65991a1e6..d18b7bf916 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -85,14 +85,6 @@ const ImVec4 ImGuiWrapper::COL_BUTTON_HOVERED = COL_ORANGE_LIGHT; const ImVec4 ImGuiWrapper::COL_BUTTON_ACTIVE = ImGuiWrapper::COL_BUTTON_HOVERED; ImGuiWrapper::ImGuiWrapper() - : m_glyph_ranges(nullptr) - , m_font_cjk(false) - , m_font_size(18.0) - , m_font_texture(0) - , m_style_scaling(1.0) - , m_mouse_buttons(0) - , m_disabled(false) - , m_new_frame_open(false) { ImGui::CreateContext(); @@ -484,6 +476,47 @@ void ImGuiWrapper::tooltip(const wxString &label, float wrap_width) ImGui::EndTooltip(); } +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT +bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + const float max_tooltip_width = ImGui::GetFontSize() * 20.0f; + + bool ret = ImGui::SliderFloat(label, v, v_min, v_max, format, power); + if (!tooltip.empty() && ImGui::IsItemHovered()) + this->tooltip(into_u8(tooltip).c_str(), max_tooltip_width); + + if (clamp) + *v = std::clamp(*v, v_min, v_max); + + if (show_edit_btn) { + const ImGuiStyle& style = ImGui::GetStyle(); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, { 1, style.ItemSpacing.y }); + ImGui::SameLine(); + const std::string btn_name = "..." + std::string(label); + if (ImGui::Button(btn_name.c_str())) { + ImGui::SetKeyboardFocusHere(-1); + this->set_requires_extra_frame(); + } + if (ImGui::IsItemHovered()) + this->tooltip(into_u8(_L("Edit")).c_str(), max_tooltip_width); + + ImGui::PopStyleVar(); + } + + return ret; +} + +bool ImGuiWrapper::slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + return this->slider_float(label.c_str(), v, v_min, v_max, format, power, clamp, tooltip, show_edit_btn); +} + +bool ImGuiWrapper::slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + auto label_utf8 = into_u8(label); + return this->slider_float(label_utf8.c_str(), v, v_min, v_max, format, power, clamp, tooltip, show_edit_btn); +} +#else bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/) { bool ret = ImGui::SliderFloat(label, v, v_min, v_max, format, power); @@ -502,6 +535,7 @@ bool ImGuiWrapper::slider_float(const wxString& label, float* v, float v_min, fl auto label_utf8 = into_u8(label); return this->slider_float(label_utf8.c_str(), v, v_min, v_max, format, power, clamp); } +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT bool ImGuiWrapper::combo(const wxString& label, const std::vector& options, int& selection) { diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index 27cd098ff1..a56af22363 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -22,15 +22,18 @@ namespace GUI { class ImGuiWrapper { - const ImWchar *m_glyph_ranges; + const ImWchar* m_glyph_ranges{ nullptr }; // Chinese, Japanese, Korean - bool m_font_cjk; - float m_font_size; - unsigned m_font_texture; - float m_style_scaling; - unsigned m_mouse_buttons; - bool m_disabled; - bool m_new_frame_open; + bool m_font_cjk{ false }; + float m_font_size{ 18.0 }; + unsigned m_font_texture{ 0 }; + float m_style_scaling{ 1.0 }; + unsigned m_mouse_buttons{ 0 }; + bool m_disabled{ false }; + bool m_new_frame_open{ false }; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool m_requires_extra_frame{ false }; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT std::string m_clipboard_text; public: @@ -90,9 +93,15 @@ public: void tooltip(const wxString &label, float wrap_width); // Float sliders: Manually inserted values aren't clamped by ImGui.Using this wrapper function does (when clamp==true). +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool slider_float(const char* label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); + bool slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); + bool slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); +#else bool slider_float(const char* label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); bool slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); bool slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT bool combo(const wxString& label, const std::vector& options, int& selection); // Use -1 to not mark any option as selected bool undo_redo_list(const ImVec2& size, const bool is_undo, bool (*items_getter)(const bool, int, const char**), int& hovered, int& selected, int& mouse_wheel); @@ -108,6 +117,12 @@ public: bool want_text_input() const; bool want_any_input() const; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool requires_extra_frame() const { return m_requires_extra_frame; } + void set_requires_extra_frame() { m_requires_extra_frame = true; } + void reset_requires_extra_frame() { m_requires_extra_frame = false; } +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + static const ImVec4 COL_GREY_DARK; static const ImVec4 COL_GREY_LIGHT; static const ImVec4 COL_ORANGE_DARK; From 9086879e165bd2f3427763f67381f1c6a7570604 Mon Sep 17 00:00:00 2001 From: Filip Sykala Date: Thu, 4 Nov 2021 15:26:24 +0100 Subject: [PATCH 068/130] Change float slider to wrap function. Enrico's request --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index c72f744e10..9c1c4789f2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -256,7 +256,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi const char * format = (m_configuration.decimate_ratio > 10)? "%.0f %%": ((m_configuration.decimate_ratio > 1)? "%.1f %%":"%.2f %%"); - if (ImGui::SliderFloat("##decimate_ratio", &m_configuration.decimate_ratio, 0.f, 100.f, format)) { + if(m_imgui->slider_float("##decimate_ratio", &m_configuration.decimate_ratio, 0.f, 100.f, format)){ if (m_configuration.decimate_ratio < 0.f) m_configuration.decimate_ratio = 0.01f; if (m_configuration.decimate_ratio > 100.f) From bbcedae5fd2a2765f6315bbe1753cf4e8a86e2ce Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 5 Nov 2021 15:18:10 +0100 Subject: [PATCH 069/130] MSW: DarkMode: Improvements for message Dialogs * A little bit reworked MsgDialog: Checkbox and buttons are placed under the Static line * Implemented wrapper for wxRichMessageDialog + Implemented wrapper for wxStaticLine --- src/slic3r/Config/Snapshot.cpp | 3 +- src/slic3r/GUI/ConfigWizard.cpp | 11 +- src/slic3r/GUI/GUI_App.cpp | 12 +- src/slic3r/GUI/MsgDialog.cpp | 45 +++++--- src/slic3r/GUI/MsgDialog.hpp | 191 +++++++++++++++++++++++++++++--- src/slic3r/GUI/Plater.cpp | 12 +- 6 files changed, 221 insertions(+), 53 deletions(-) diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 23713dd119..77a74bffeb 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -22,6 +22,7 @@ #include "../GUI/GUI_App.hpp" #include "../GUI/I18N.hpp" #include "../GUI/MainFrame.hpp" +#include "../GUI/MsgDialog.hpp" #include @@ -591,7 +592,7 @@ bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot: SnapshotDB::singleton().take_snapshot(app_config, reason, comment); return true; } catch (std::exception &err) { - wxRichMessageDialog dlg(static_cast(wxGetApp().mainframe), + RichMessageDialog dlg(static_cast(wxGetApp().mainframe), _L("PrusaSlicer has encountered an error while taking a configuration snapshot.") + "\n\n" + from_u8(err.what()) + "\n\n" + from_u8(message), _L("PrusaSlicer error"), wxYES_NO); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index b3b00f60c8..762de2cf53 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -555,7 +555,7 @@ PagePrinters::PagePrinters(ConfigWizard *parent, wizard_p()->on_printer_pick(this, evt); }); - append(new wxStaticLine(this)); + append(new StaticLine(this)); append(picker); printer_pickers.push_back(picker); @@ -2800,11 +2800,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) auto *vsizer = new wxBoxSizer(wxVERTICAL); auto *topsizer = new wxBoxSizer(wxHORIZONTAL); - wxStaticLine* hline = nullptr; -#ifdef _MSW_DARK_MODE - if (!NppDarkMode::IsEnabled()) -#endif //_MSW_DARK_MODE - hline = new wxStaticLine(this); + auto* hline = new StaticLine(this); p->btnsizer = new wxBoxSizer(wxHORIZONTAL); // Initially we _do not_ SetScrollRate in order to figure out the overall width of the Wizard without scrolling. @@ -2880,8 +2876,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->index->go_to(size_t{0}); vsizer->Add(topsizer, 1, wxEXPAND | wxALL, DIALOG_MARGIN); - if (hline) - vsizer->Add(hline, 0, wxEXPAND); + vsizer->Add(hline, 0, wxEXPAND | wxLEFT | wxRIGHT, VERTICAL_SPACING); vsizer->Add(p->btnsizer, 0, wxEXPAND | wxALL, DIALOG_MARGIN); SetSizer(vsizer); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index bab07b4664..025614d4d2 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -411,7 +411,7 @@ bool static check_old_linux_datadir(const wxString& app_name) { "location again.\n\n" "What do you want to do now?")) % SLIC3R_APP_NAME % new_path % old_path).str()); wxString caption = from_u8((boost::format(_u8L("%s - BREAKING CHANGE")) % SLIC3R_APP_NAME).str()); - wxRichMessageDialog dlg(nullptr, msg, caption, wxYES_NO); + RichMessageDialog dlg(nullptr, msg, caption, wxYES_NO); dlg.SetYesNoLabels(_L("Quit, I will move my data now"), _L("Start the application")); if (dlg.ShowModal() != wxID_NO) return false; @@ -846,7 +846,7 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup) return false; BOOST_LOG_TRIVIAL(info) << "last app config file used: " << m_older_data_dir_path; // ask about using older data folder - wxRichMessageDialog msg(nullptr, backup ? + RichMessageDialog msg(nullptr, backup ? wxString::Format(_L("PrusaSlicer detected another configuration folder at %s." "\nIts version is %s." "\nLast version you used in current configuration folder is %s." @@ -936,7 +936,7 @@ bool GUI_App::on_init_inner() // win32 build on win64 and viceversa #ifdef _WIN64 if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "") { - wxRichMessageDialog dlg(nullptr, + RichMessageDialog dlg(nullptr, _L("You have started PrusaSlicer for 64-bit architecture on 32-bit system." "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." "\nDo you wish to continue?"), @@ -946,7 +946,7 @@ bool GUI_App::on_init_inner() } #elif _WIN32 if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") { - wxRichMessageDialog dlg(nullptr, + RichMessageDialog dlg(nullptr, _L("You have started PrusaSlicer for 32-bit architecture on 64-bit system." "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." "\nDo you wish to continue?"), @@ -991,7 +991,7 @@ bool GUI_App::on_init_inner() bool ssl_accept = app_config->get("tls_cert_store_accepted") == "yes" && ssl_cert_store == Http::tls_system_cert_store(); if (!msg.empty() && !ssl_accept) { - wxRichMessageDialog + RichMessageDialog dlg(nullptr, wxString::Format(_L("%s\nDo you want to continue?"), msg), "PrusaSlicer", wxICON_QUESTION | wxYES_NO); @@ -2855,7 +2855,7 @@ bool GUI_App::open_browser_with_warning_dialog(const wxString& url, int flags/* bool launch = true; if (get_app_config()->get("suppress_hyperlinks").empty()) { - wxRichMessageDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink"), wxICON_QUESTION | wxYES_NO); + RichMessageDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink"), wxICON_QUESTION | wxYES_NO); dialog.ShowCheckBox(_L("Remember my choice")); int answer = dialog.ShowModal(); launch = answer == wxID_YES; diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index c4cdde3d90..bc17dd9cec 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -27,7 +27,7 @@ namespace GUI { MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id, wxBitmap bitmap) : wxDialog(parent ? parent : dynamic_cast(wxGetApp().mainframe), wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) - , boldfont(wxGetApp().normal_font()/*wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)*/) + , boldfont(wxGetApp().normal_font()) , content_sizer(new wxBoxSizer(wxVERTICAL)) , btn_sizer(new wxBoxSizer(wxHORIZONTAL)) { @@ -36,6 +36,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he this->SetFont(wxGetApp().normal_font()); this->CenterOnParent(); + auto *main_sizer = new wxBoxSizer(wxVERTICAL); auto *topsizer = new wxBoxSizer(wxHORIZONTAL); auto *rightsizer = new wxBoxSizer(wxVERTICAL); @@ -46,6 +47,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he rightsizer->AddSpacer(VERT_SPACING); rightsizer->Add(content_sizer, 1, wxEXPAND); + btn_sizer->AddStretchSpacer(); if (button_id != wxID_NONE) { auto *button = new wxButton(this, button_id); @@ -53,8 +55,6 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he btn_sizer->Add(button); } - rightsizer->Add(btn_sizer, 0, wxALIGN_RIGHT); - if (! bitmap.IsOk()) { bitmap = create_scaled_bitmap("PrusaSlicer_192px.png", this, 192); } @@ -64,7 +64,11 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he topsizer->Add(logo, 0, wxALL, BORDER); topsizer->Add(rightsizer, 1, wxTOP | wxBOTTOM | wxRIGHT | wxEXPAND, BORDER); - SetSizerAndFit(topsizer); + main_sizer->Add(topsizer, 1, wxEXPAND); + main_sizer->Add(new StaticLine(this), 0, wxEXPAND | wxLEFT | wxRIGHT, HORIZ_SPACING); + main_sizer->Add(btn_sizer, 0, wxALL | wxEXPAND, VERT_SPACING); + + SetSizerAndFit(main_sizer); } void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) @@ -72,7 +76,7 @@ void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) wxButton* btn = new wxButton(this, btn_id); if (set_focus) btn->SetFocus(); - btn_sizer->Add(btn, 0, wxRIGHT, HORIZ_SPACING); + btn_sizer->Add(btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, HORIZ_SPACING); btn->Bind(wxEVT_BUTTON, [this, btn_id](wxCommandEvent&) { this->EndModal(btn_id); }); }; @@ -209,33 +213,38 @@ MessageDialog::MessageDialog(wxWindow* parent, apply_style(style); finalize(); } -#endif -// MessageWithCheckDialog +// RichMessageDialog -MessageWithCheckDialog::MessageWithCheckDialog( wxWindow* parent, - const wxString& message, - const wxString& checkbox_label, - const wxString& caption/* = wxEmptyString*/, - long style/* = wxOK*/) +RichMessageDialog::RichMessageDialog(wxWindow* parent, + const wxString& message, + const wxString& caption/* = wxEmptyString*/, + long style/* = wxOK*/) : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) { add_msg_content(this, content_sizer, message); - m_check = new wxCheckBox(this, wxID_ANY, checkbox_label); - content_sizer->Add(m_check, 0, wxTOP, 10); + m_checkBox = new wxCheckBox(this, wxID_ANY, m_checkBoxText); + m_checkBox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_checkBoxValue = m_checkBox->GetValue(); }); + + btn_sizer->Insert(0, m_checkBox, wxALIGN_CENTER_VERTICAL); apply_style(style); finalize(); } -bool MessageWithCheckDialog::GetCheckVal() +int RichMessageDialog::ShowModal() { - if (m_check) - return m_check->GetValue(); - return false; + if (m_checkBoxText.IsEmpty()) + m_checkBox->Hide(); + else + m_checkBox->SetLabelText(m_checkBoxText); + Layout(); + + return wxDialog::ShowModal(); } +#endif // InfoDialog diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index d3263f970e..22a81579a6 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include class wxBoxSizer; class wxCheckBox; @@ -17,7 +19,6 @@ namespace Slic3r { namespace GUI { - // A message / query dialog with a bitmap on the left and any content on the right // with buttons underneath. struct MsgDialog : wxDialog @@ -87,6 +88,23 @@ public: }; #ifdef _WIN32 +// Generic static line, used intead of wxStaticLine +class StaticLine: public wxTextCtrl +{ +public: + StaticLine( wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxLI_HORIZONTAL, + const wxString& name = wxASCII_STR(wxTextCtrlNameStr)) + : wxTextCtrl(parent, id, wxEmptyString, pos, size!=wxDefaultSize ? size : (style == wxLI_HORIZONTAL ? wxSize(10, 1) : wxSize(1, 10)), wxSIMPLE_BORDER, wxDefaultValidator, name) + { + this->Enable(false); + } + ~StaticLine() {} +}; + // Generic message dialog, used intead of wxMessageDialog class MessageDialog : public MsgDialog { @@ -101,7 +119,158 @@ public: MessageDialog &operator=(const MessageDialog&) = delete; virtual ~MessageDialog() = default; }; + +// Generic rich message dialog, used intead of wxRichMessageDialog +class RichMessageDialog : public MsgDialog +{ + wxCheckBox* m_checkBox{ nullptr }; + wxString m_checkBoxText; + bool m_checkBoxValue{ false }; + +public: + RichMessageDialog( wxWindow *parent, + const wxString& message, + const wxString& caption = wxEmptyString, + long style = wxOK); + RichMessageDialog(RichMessageDialog&&) = delete; + RichMessageDialog(const RichMessageDialog&) = delete; + RichMessageDialog &operator=(RichMessageDialog&&) = delete; + RichMessageDialog &operator=(const RichMessageDialog&) = delete; + virtual ~RichMessageDialog() = default; + + int ShowModal() override; + + void ShowCheckBox(const wxString& checkBoxText, bool checked = false) + { + m_checkBoxText = checkBoxText; + m_checkBoxValue = checked; + } + + wxString GetCheckBoxText() const { return m_checkBoxText; } + bool IsCheckBoxChecked() const { return m_checkBoxValue; } + +// This part o fcode isported from the "wx\msgdlg.h" + using wxMD = wxMessageDialogBase; + // customization of the message box buttons + virtual bool SetYesNoLabels(const wxMD::ButtonLabel& yes, const wxMD::ButtonLabel& no) + { + DoSetCustomLabel(m_yes, yes); + DoSetCustomLabel(m_no, no); + return true; + } + + virtual bool SetYesNoCancelLabels(const wxMD::ButtonLabel& yes, + const wxMD::ButtonLabel& no, + const wxMD::ButtonLabel& cancel) + { + DoSetCustomLabel(m_yes, yes); + DoSetCustomLabel(m_no, no); + DoSetCustomLabel(m_cancel, cancel); + return true; + } + + virtual bool SetOKLabel(const wxMD::ButtonLabel& ok) + { + DoSetCustomLabel(m_ok, ok); + return true; +} + + virtual bool SetOKCancelLabels(const wxMD::ButtonLabel& ok, + const wxMD::ButtonLabel& cancel) + { + DoSetCustomLabel(m_ok, ok); + DoSetCustomLabel(m_cancel, cancel); + return true; + } + + virtual bool SetHelpLabel(const wxMD::ButtonLabel& help) + { + DoSetCustomLabel(m_help, help); + return true; + } + // test if any custom labels were set + bool HasCustomLabels() const + { + return !(m_ok.empty() && m_cancel.empty() && m_help.empty() && + m_yes.empty() && m_no.empty()); + } + + // these functions return the label to be used for the button which is + // either a custom label explicitly set by the user or the default label, + // i.e. they always return a valid string + wxString GetYesLabel() const + { + return m_yes.empty() ? GetDefaultYesLabel() : m_yes; + } + wxString GetNoLabel() const + { + return m_no.empty() ? GetDefaultNoLabel() : m_no; + } + wxString GetOKLabel() const + { + return m_ok.empty() ? GetDefaultOKLabel() : m_ok; + } + wxString GetCancelLabel() const + { + return m_cancel.empty() ? GetDefaultCancelLabel() : m_cancel; + } + wxString GetHelpLabel() const + { + return m_help.empty() ? GetDefaultHelpLabel() : m_help; + } + +protected: + // this function is called by our public SetXXXLabels() and should assign + // the value to var with possibly some transformation (e.g. Cocoa version + // currently uses this to remove any accelerators from the button strings + // while GTK+ one handles stock items specifically here) + void DoSetCustomLabel(wxString& var, const wxMD::ButtonLabel& label) + { + var = label.GetAsString(); + } + + // these functions return the custom label or empty string and should be + // used only in specific circumstances such as creating the buttons with + // these labels (in which case it makes sense to only use a custom label if + // it was really given and fall back on stock label otherwise), use the + // Get{Yes,No,OK,Cancel}Label() methods above otherwise + const wxString& GetCustomYesLabel() const { return m_yes; } + const wxString& GetCustomNoLabel() const { return m_no; } + const wxString& GetCustomOKLabel() const { return m_ok; } + const wxString& GetCustomHelpLabel() const { return m_help; } + const wxString& GetCustomCancelLabel() const { return m_cancel; } + +private: + // these functions may be overridden to provide different defaults for the + // default button labels (this is used by wxGTK) + virtual wxString GetDefaultYesLabel() const { return wxGetTranslation("Yes"); } + virtual wxString GetDefaultNoLabel() const { return wxGetTranslation("No"); } + virtual wxString GetDefaultOKLabel() const { return wxGetTranslation("OK"); } + virtual wxString GetDefaultCancelLabel() const { return wxGetTranslation("Cancel"); } + virtual wxString GetDefaultHelpLabel() const { return wxGetTranslation("Help"); } + + // labels for the buttons, initially empty meaning that the defaults should + // be used, use GetYes/No/OK/CancelLabel() to access them + wxString m_yes, + m_no, + m_ok, + m_cancel, + m_help; +}; #else +// just a wrapper for wxStaticLine to use the same code on all platforms +class StaticLine : public wxStaticLine +{ +public: + StaticLine(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxLI_HORIZONTAL, + const wxString& name = wxASCII_STR(wxStaticLineNameStr)) + : wxStaticLine(parent, id, pos, size, style, name) {} + ~StaticLine() {} +}; // just a wrapper to wxMessageBox to use the same code on all platforms class MessageDialog : public wxMessageDialog { @@ -113,25 +282,19 @@ public: : wxMessageDialog(parent, message, caption, style) {} ~MessageDialog() {} }; -#endif -class MessageWithCheckDialog : public MsgDialog +// just a wrapper to wxRichMessageBox to use the same code on all platforms +class RichMessageDialog : public wxRichMessageDialog { - wxCheckBox* m_check{ nullptr }; public: - MessageWithCheckDialog(wxWindow* parent, + RichMessageDialog(wxWindow* parent, const wxString& message, - const wxString& checkbox_label, const wxString& caption = wxEmptyString, - long style = wxOK); - MessageWithCheckDialog(MessageWithCheckDialog&&) = delete; - MessageWithCheckDialog(const MessageWithCheckDialog&) = delete; - MessageWithCheckDialog& operator=(MessageWithCheckDialog&&) = delete; - MessageWithCheckDialog& operator=(const MessageWithCheckDialog&) = delete; - virtual ~MessageWithCheckDialog() = default; - - bool GetCheckVal(); + long style = wxOK) + : wxRichMessageDialog(parent, message, caption, style) {} + ~RichMessageDialog() {} }; +#endif // Generic info dialog, used for displaying exceptions class InfoDialog : public MsgDialog diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index eb64fb08ca..2567ca52f0 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2482,15 +2482,15 @@ std::vector Plater::priv::load_files(const std::vector& input_ model.convert_from_meters(true); }; if (answer_convert_from_meters == wxOK_DEFAULT) { - MessageWithCheckDialog dlg(q, format_wxstr(_L_PLURAL( + RichMessageDialog dlg(q, format_wxstr(_L_PLURAL( "The dimensions of the object from file %s seem to be defined in meters.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", "The dimensions of some objects from file %s seem to be defined in meters.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("Apply to all the remaining small objects being loaded."), _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); int answer = dlg.ShowModal(); - if (dlg.GetCheckVal()) + if (dlg.IsCheckBoxChecked()) answer_convert_from_meters = answer; else convert_model_if(model, answer == wxID_YES); @@ -2504,15 +2504,15 @@ std::vector Plater::priv::load_files(const std::vector& input_ convert_from_imperial_units(model, true); }; if (answer_convert_from_imperial_units == wxOK_DEFAULT) { - MessageWithCheckDialog dlg(q, format_wxstr(_L_PLURAL( + RichMessageDialog dlg(q, format_wxstr(_L_PLURAL( "The dimensions of the object from file %s seem to be defined in inches.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", "The dimensions of some objects from file %s seem to be defined in inches.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("Apply to all the remaining small objects being loaded."), _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); int answer = dlg.ShowModal(); - if (dlg.GetCheckVal()) + if (dlg.IsCheckBoxChecked()) answer_convert_from_imperial_units = answer; else convert_model_if(model, answer == wxID_YES); From fb429c1e23cee632a13c926417960096d01d7bd8 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Fri, 5 Nov 2021 15:28:42 +0100 Subject: [PATCH 070/130] Load layer height from config.ini if profile is missing from sl1 archive --- src/libslic3r/Format/SL1.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index c4b8f030f7..aef8038d69 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -135,7 +135,7 @@ ArchiveData extract_sla_archive(const std::string &zipfname, ExPolygons rings_to_expolygons(const std::vector &rings, double px_w, double px_h) { - ExPolygons polys; polys.reserve(rings.size()); + auto polys = reserve_vector(rings.size()); for (const marchsq::Ring &ring : rings) { Polygon poly; Points &pts = poly.points; @@ -147,7 +147,7 @@ ExPolygons rings_to_expolygons(const std::vector &rings, polys.emplace_back(poly); } - // reverse the raster transformations + // TODO: Is a union necessary? return union_ex(polys); } @@ -270,11 +270,11 @@ std::vector extract_slices_from_sla_archive( png::ReadBuf rb{arch.images[i].buf.data(), arch.images[i].buf.size()}; if (!png::decode_png(rb, img)) return; - auto rings = marchsq::execute(img, 128, rstp.win); + uint8_t isoval = 128; + auto rings = marchsq::execute(img, isoval, rstp.win); ExPolygons expolys = rings_to_expolygons(rings, rstp.px_w, rstp.px_h); - // Invert the raster transformations indicated in - // the profile metadata + // Invert the raster transformations indicated in the profile metadata invert_raster_trafo(expolys, rstp.trafo, rstp.width, rstp.height); slices[i] = std::move(expolys); @@ -310,7 +310,18 @@ ConfigSubstitutions import_sla_archive( std::string exclude_entries{"thumbnail"}; ArchiveData arch = extract_sla_archive(zipfname, exclude_entries); DynamicPrintConfig profile_in, profile_use; - ConfigSubstitutions config_substitutions = profile_in.load(arch.profile, ForwardCompatibilitySubstitutionRule::Enable); + ConfigSubstitutions config_substitutions = + profile_in.load(arch.profile, + ForwardCompatibilitySubstitutionRule::Enable); + + if (profile_in.empty()) { // missing profile... do guess work + // try to recover the layer height from the config.ini which was + // present in all versions of sl1 files. + auto lh_str = arch.config.find("layerHeight")->second.data(); + double lh = std::stod(lh_str); // TODO replace with std::from_chars + profile_out.set("layer_height", lh); + profile_out.set("initial_layer_height", lh); + } // If the archive contains an empty profile, use the one that was passed as output argument // then replace it with the readed profile to report that it was empty. From 1c940ef145ae844aa4cdf8943b5356a9c2accbfe Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Fri, 5 Nov 2021 15:29:58 +0100 Subject: [PATCH 071/130] Do not reset sl1 import dialog settings between imports --- src/slic3r/GUI/Jobs/SLAImportJob.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/Jobs/SLAImportJob.cpp b/src/slic3r/GUI/Jobs/SLAImportJob.cpp index c4465edbaf..287b2e88be 100644 --- a/src/slic3r/GUI/Jobs/SLAImportJob.cpp +++ b/src/slic3r/GUI/Jobs/SLAImportJob.cpp @@ -122,7 +122,9 @@ public: std::string err; ConfigSubstitutions config_substitutions; - priv(Plater *plt) : plater{plt} {} + ImportDlg import_dlg; + + priv(Plater *plt) : plater{plt}, import_dlg{plt} {} }; SLAImportJob::SLAImportJob(std::shared_ptr pri, Plater *plater) @@ -176,14 +178,12 @@ void SLAImportJob::prepare() { reset(); - ImportDlg dlg{p->plater}; - - if (dlg.ShowModal() == wxID_OK) { - auto path = dlg.get_path(); + if (p->import_dlg.ShowModal() == wxID_OK) { + auto path = p->import_dlg.get_path(); auto nm = wxFileName(path); p->path = !nm.Exists(wxFILE_EXISTS_REGULAR) ? "" : nm.GetFullPath(); - p->sel = dlg.get_selection(); - p->win = dlg.get_marchsq_windowsize(); + p->sel = p->import_dlg.get_selection(); + p->win = p->import_dlg.get_marchsq_windowsize(); p->config_substitutions.clear(); } else { p->path = ""; From c4c8b7608e795323e39e949ab08fa85e9416af6c Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Fri, 5 Nov 2021 15:32:14 +0100 Subject: [PATCH 072/130] Fix some mesh errors in sl1 archive reconstruction --- src/libslic3r/SlicesToTriangleMesh.cpp | 59 +++++++++++++------------- src/libslic3r/SlicesToTriangleMesh.hpp | 8 ++-- src/libslic3r/TriangleMesh.cpp | 26 +++++------- src/slic3r/GUI/Jobs/SLAImportJob.cpp | 2 +- 4 files changed, 45 insertions(+), 50 deletions(-) diff --git a/src/libslic3r/SlicesToTriangleMesh.cpp b/src/libslic3r/SlicesToTriangleMesh.cpp index 7a2975d12d..3b55cf066b 100644 --- a/src/libslic3r/SlicesToTriangleMesh.cpp +++ b/src/libslic3r/SlicesToTriangleMesh.cpp @@ -1,3 +1,4 @@ +#include #include "SlicesToTriangleMesh.hpp" @@ -22,11 +23,16 @@ inline indexed_triangle_set wall_strip(const Polygon &poly, ret.vertices.reserve(ret.vertices.size() + 2 *offs); + // The expression unscaled(p).cast().eval() is important here + // as it ensures identical conversion of 2D scaled coordinates to float 3D + // to that used by the tesselation. This way, the duplicated vertices in the + // output mesh can be found with the == operator of the points. + // its_merge_vertices will then reliably remove the duplicates. for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(lower_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(lower_z_mm))); for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(upper_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(upper_z_mm))); for (size_t i = startidx + 1; i < startidx + offs; ++i) { ret.indices.emplace_back(i - 1, i, i + offs - 1); @@ -84,12 +90,14 @@ indexed_triangle_set slices_to_mesh( const ExPolygons &upper = slices[i + 1]; const ExPolygons &lower = slices[i]; - ExPolygons dff1 = diff_ex(lower, upper); - ExPolygons dff2 = diff_ex(upper, lower); - its_merge(layers[i], triangulate_expolygons_3d(dff1, grid[i], NORMALS_UP)); - its_merge(layers[i], triangulate_expolygons_3d(dff2, grid[i], NORMALS_DOWN)); + // Small 0 area artefacts can be created by diff_ex, and the + // tesselation also can create 0 area triangles. These will be removed + // by its_remove_degenerate_faces. + ExPolygons free_top = diff_ex(lower, upper); + ExPolygons overhang = diff_ex(upper, lower); + its_merge(layers[i], triangulate_expolygons_3d(free_top, grid[i], NORMALS_UP)); + its_merge(layers[i], triangulate_expolygons_3d(overhang, grid[i], NORMALS_DOWN)); its_merge(layers[i], straight_walls(upper, grid[i], grid[i + 1])); - }); auto merge_fn = []( const indexed_triangle_set &a, const indexed_triangle_set &b ) { @@ -99,37 +107,30 @@ indexed_triangle_set slices_to_mesh( auto ret = execution::reduce(ex_tbb, layers.begin(), layers.end(), indexed_triangle_set{}, merge_fn); - // sla::Contour3D ret = tbb::parallel_reduce( - // tbb::blocked_range(layers.begin(), layers.end()), - // sla::Contour3D{}, - // [](const tbb::blocked_range& r, sla::Contour3D - // init) { - // for(auto it = r.begin(); it != r.end(); ++it ) - // init.merge(*it); return init; - // }, - // []( const sla::Contour3D &a, const sla::Contour3D &b ) { - // sla::Contour3D res{a}; res.merge(b); return res; - // }); - its_merge(ret, triangulate_expolygons_3d(slices.front(), zmin, NORMALS_DOWN)); its_merge(ret, straight_walls(slices.front(), zmin, grid.front())); its_merge(ret, triangulate_expolygons_3d(slices.back(), grid.back(), NORMALS_UP)); - + + // FIXME: these repairs do not fix the mesh entirely. There will be cracks + // in the output. It is very hard to do the meshing in a way that does not + // leave errors. + its_merge_vertices(ret); + its_remove_degenerate_faces(ret); + its_compactify_vertices(ret); + return ret; } void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh) + const std::vector &slices, + double zmin, + double lh, + double ilh) { - std::vector wall_meshes(slices.size()); std::vector grid(slices.size(), zmin + ilh); - - for (size_t i = 1; i < grid.size(); ++i) - grid[i] = grid[i - 1] + lh; - + + for (size_t i = 1; i < grid.size(); ++i) grid[i] = grid[i - 1] + lh; + indexed_triangle_set cntr = slices_to_mesh(slices, zmin, grid); its_merge(mesh, cntr); } diff --git a/src/libslic3r/SlicesToTriangleMesh.hpp b/src/libslic3r/SlicesToTriangleMesh.hpp index 2fd1778851..57b540d9fb 100644 --- a/src/libslic3r/SlicesToTriangleMesh.hpp +++ b/src/libslic3r/SlicesToTriangleMesh.hpp @@ -7,10 +7,10 @@ namespace Slic3r { void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh); + const std::vector &slices, + double zmin, + double lh, + double ilh); inline indexed_triangle_set slices_to_mesh( const std::vector &slices, double zmin, double lh, double ilh) diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index fb2621225a..efd8e97f71 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -705,22 +705,16 @@ void its_flip_triangles(indexed_triangle_set &its) int its_remove_degenerate_faces(indexed_triangle_set &its, bool shrink_to_fit) { - int last = 0; - for (int i = 0; i < int(its.indices.size()); ++ i) { - const stl_triangle_vertex_indices &face = its.indices[i]; - if (face(0) != face(1) && face(0) != face(2) && face(1) != face(2)) { - if (last < i) - its.indices[last] = its.indices[i]; - ++ last; - } - } - int removed = int(its.indices.size()) - last; - if (removed) { - its.indices.erase(its.indices.begin() + last, its.indices.end()); - // Optionally shrink the vertices. - if (shrink_to_fit) - its.indices.shrink_to_fit(); - } + auto it = std::remove_if(its.indices.begin(), its.indices.end(), [](auto &face) { + return face(0) == face(1) || face(0) == face(2) || face(1) == face(2); + }); + + int removed = std::distance(it, its.indices.end()); + its.indices.erase(it, its.indices.end()); + + if (removed && shrink_to_fit) + its.indices.shrink_to_fit(); + return removed; } diff --git a/src/slic3r/GUI/Jobs/SLAImportJob.cpp b/src/slic3r/GUI/Jobs/SLAImportJob.cpp index 287b2e88be..0d42cec2d3 100644 --- a/src/slic3r/GUI/Jobs/SLAImportJob.cpp +++ b/src/slic3r/GUI/Jobs/SLAImportJob.cpp @@ -236,7 +236,7 @@ void SLAImportJob::finalize() if (!p->mesh.empty()) { bool is_centered = false; - p->plater->sidebar().obj_list()->load_mesh_object(TriangleMesh{p->mesh}, + p->plater->sidebar().obj_list()->load_mesh_object(TriangleMesh{std::move(p->mesh)}, name, is_centered); } From 535191c1e93015386929cc8f0b20405523057d61 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Fri, 5 Nov 2021 15:58:40 +0100 Subject: [PATCH 073/130] Verify layerHeight conf value before use --- src/libslic3r/Format/SL1.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index aef8038d69..a8f920ae24 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -317,10 +317,16 @@ ConfigSubstitutions import_sla_archive( if (profile_in.empty()) { // missing profile... do guess work // try to recover the layer height from the config.ini which was // present in all versions of sl1 files. - auto lh_str = arch.config.find("layerHeight")->second.data(); - double lh = std::stod(lh_str); // TODO replace with std::from_chars - profile_out.set("layer_height", lh); - profile_out.set("initial_layer_height", lh); + if (auto lh_opt = arch.config.find("layerHeight"); + lh_opt != arch.config.not_found()) + { + auto lh_str = lh_opt->second.data(); + try { + double lh = std::stod(lh_str); // TODO replace with std::from_chars + profile_out.set("layer_height", lh); + profile_out.set("initial_layer_height", lh); + } catch(...) {} + } } // If the archive contains an empty profile, use the one that was passed as output argument From 2fcab52f86a40e37d7a9546d31f09a3e92c4a4b6 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 5 Nov 2021 17:19:57 +0100 Subject: [PATCH 074/130] Added "Color" parameter for SLA material --- src/libslic3r/Preset.cpp | 1 + src/libslic3r/PrintConfig.cpp | 7 +++++ src/slic3r/GUI/3DScene.cpp | 54 +++++++++++++++++++++++------------ src/slic3r/GUI/Plater.cpp | 11 ++++++- src/slic3r/GUI/Tab.cpp | 7 +++++ 5 files changed, 60 insertions(+), 20 deletions(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 09cd384687..0487ddaec7 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -534,6 +534,7 @@ static std::vector s_Preset_sla_print_options { }; static std::vector s_Preset_sla_material_options { + "material_colour", "material_type", "initial_layer_height", "bottle_cost", diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 232e724e76..e165c731ff 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -3163,6 +3163,13 @@ void PrintConfigDef::init_sla_params() // SLA Material settings. + + def = this->add("material_colour", coStrings); + def->label = L("Color"); + def->tooltip = L("This is only used in the Slic3r interface as a visual help."); + def->gui_type = ConfigOptionDef::GUIType::color; + def->set_default_value(new ConfigOptionStrings{ "#29B2B2" }); + def = this->add("material_type", coString); def->label = L("SLA material type"); def->tooltip = L("SLA material type"); diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index ee28fd718f..6e7174baff 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1131,29 +1131,45 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig* con if (config == nullptr) return; - const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); - if (extruders_opt == nullptr) - return; - - const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); - if (filamemts_opt == nullptr) - return; - - unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); - if (colors_count == 0) - return; - - std::vector colors(colors_count); - unsigned char rgb[3]; - for (unsigned int i = 0; i < colors_count; ++i) { - const std::string& txt_color = config->opt_string("extruder_colour", i); + std::vector colors; + + if (static_cast(config->opt_int("printer_technology")) == ptSLA) + { + const ConfigOptionStrings* resin_clr = dynamic_cast(config->option("material_colour")); + if (resin_clr == nullptr) + return; + assert(resin_clr->values.size() == 1); + colors.resize(1); + + const std::string& txt_color = config->opt_string("material_colour", 0); if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) - colors[i].set(txt_color, rgb); - else { - const std::string& txt_color = config->opt_string("filament_colour", i); + colors[0].set(txt_color, rgb); + } + else + { + const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); + if (extruders_opt == nullptr) + return; + + const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); + if (filamemts_opt == nullptr) + return; + + unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); + if (colors_count == 0) + return; + colors.resize(colors_count); + + for (unsigned int i = 0; i < colors_count; ++i) { + const std::string& txt_color = config->opt_string("extruder_colour", i); if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) colors[i].set(txt_color, rgb); + else { + const std::string& txt_color = config->opt_string("filament_colour", i); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) + colors[i].set(txt_color, rgb); + } } } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 2567ca52f0..fe8c72fea6 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1920,7 +1920,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) "bed_shape", "bed_custom_texture", "bed_custom_model", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance", "brim_width", "brim_separation", "brim_type", "variable_layer_height", "nozzle_diameter", "single_extruder_multi_material", "wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", - "extruder_colour", "filament_colour", "max_print_height", "printer_model", "printer_technology", + "extruder_colour", "filament_colour", "material_colour", "max_print_height", "printer_model", "printer_technology", // These values are necessary to construct SlicingParameters by the Canvas3D variable layer height editor. "layer_height", "first_layer_height", "min_layer_height", "max_layer_height", "brim_width", "perimeters", "perimeter_extruder", "fill_density", "infill_extruder", "top_solid_layers", @@ -6222,6 +6222,15 @@ void Plater::on_config_change(const DynamicPrintConfig &config) } } + if (opt_key == "material_colour") { + update_scheduled = true; // update should be scheduled (for update 3DScene) + + // update material color in full config + std::vector material_colors = { config.opt_string("material_colour", (unsigned)0) }; + p->config->option("material_colour")->values = material_colors; + continue; + } + p->config->set_key_value(opt_key, config.option(opt_key)->clone()); if (opt_key == "printer_technology") { this->set_printer_technology(config.opt_enum(opt_key)); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 1a96f4bafe..4880a3b7af 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -4157,6 +4157,7 @@ void TabSLAMaterial::build() auto page = add_options_page(L("Material"), "resin"); auto optgroup = page->new_optgroup(L("Material")); + optgroup->append_single_option_line("material_colour"); optgroup->append_single_option_line("bottle_cost"); optgroup->append_single_option_line("bottle_volume"); optgroup->append_single_option_line("bottle_weight"); @@ -4164,6 +4165,12 @@ void TabSLAMaterial::build() optgroup->m_on_change = [this, optgroup](t_config_option_key opt_key, boost::any value) { + if (opt_key == "material_colour") { + update_dirty(); + on_value_change(opt_key, value); + return; + } + DynamicPrintConfig new_conf = *m_config; if (opt_key == "bottle_volume") { From 54b72fdaa9302e78030fba70fb9914bd71f1120e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Nov 2021 22:52:13 +0100 Subject: [PATCH 075/130] Added a missing include (GCC 11.1). --- src/slic3r/GUI/MsgDialog.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 22a81579a6..909ff396d6 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -10,6 +10,7 @@ #include #include #include +#include class wxBoxSizer; class wxCheckBox; From b572588fc5b646b7f1cb80f6fde41856f1070f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Nov 2021 10:07:21 +0100 Subject: [PATCH 076/130] Small refactoring of storing colored polygons in multi-material segmentation. Previously, colored polygons were stored so that each polygon had a color assigned to it, which made it difficult to perform operations like union or so on all polygons of the same color. Now polygons are stored grouped by their assigned color/extruder. --- src/libslic3r/MultiMaterialSegmentation.cpp | 133 ++++++++++---------- src/libslic3r/MultiMaterialSegmentation.hpp | 2 +- src/libslic3r/PrintObjectSlice.cpp | 6 +- 3 files changed, 70 insertions(+), 71 deletions(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 11e2632994..ddc17713b9 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -1113,7 +1113,7 @@ static inline Polygon to_polygon(const std::vector &lines) // It iterates through all nodes on the border between two different colors, and from this point, // start selection always left most edges for every node to construct CCW polygons. // Assumes that graph is planar (without self-intersection edges) -static std::vector> extract_colored_segments(const MMU_Graph &graph) +static std::vector extract_colored_segments(const MMU_Graph &graph, const size_t num_extruders) { std::vector used_arcs(graph.arcs.size(), false); // When there is no next arc, then is returned original_arc or edge with is marked as used @@ -1153,7 +1153,7 @@ static std::vector> extract_colored_segments(const MM return std::all_of(node.arc_idxs.cbegin(), node.arc_idxs.cend(), [&used_arcs](const size_t &arc_idx) -> bool { return used_arcs[arc_idx]; }); }; - std::vector> polygons_segments; + std::vector expolygons_segments(num_extruders + 1); for (size_t node_idx = 0; node_idx < graph.all_border_points; ++node_idx) { const MMU_Graph::Node &node = graph.nodes[node_idx]; @@ -1183,12 +1183,11 @@ static std::vector> extract_colored_segments(const MM p_arc = &next; } while (graph.nodes[p_arc->to_idx].point != start_p || !all_arc_used(graph.nodes[p_arc->to_idx])); - Polygon poly = to_polygon(face_lines); - if (poly.is_counter_clockwise() && poly.is_valid()) - polygons_segments.emplace_back(poly, arc.color); + if (Polygon poly = to_polygon(face_lines); poly.is_counter_clockwise() && poly.is_valid()) + expolygons_segments[arc.color].emplace_back(std::move(poly)); } } - return polygons_segments; + return expolygons_segments; } // Used in remove_multiple_edges_in_vertices() @@ -1269,21 +1268,20 @@ static void remove_multiple_edges_in_vertices(MMU_Graph &graph, const std::vecto } } -static void cut_segmented_layers(const std::vector &input_expolygons, - std::vector>> &segmented_regions, - const float cut_width, - const std::function &throw_on_cancel_callback) +static void cut_segmented_layers(const std::vector &input_expolygons, + std::vector> &segmented_regions, + const float cut_width, + const std::function &throw_on_cancel_callback) { BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - cutting segmented layers in parallel - begin"; tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()),[&segmented_regions, &input_expolygons, &cut_width, &throw_on_cancel_callback](const tbb::blocked_range& range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - std::vector> segmented_regions_cuts; - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { - ExPolygons cut_colored_expoly = diff_ex(colored_expoly.first, offset_ex(input_expolygons[layer_idx], cut_width)); - for (ExPolygon &expoly : cut_colored_expoly) - segmented_regions_cuts.emplace_back(std::move(expoly), colored_expoly.second); - } + const size_t num_extruders_plus_one = segmented_regions[layer_idx].size(); + std::vector segmented_regions_cuts(num_extruders_plus_one); // Indexed by extruder_id + for (size_t extruder_idx = 0; extruder_idx < num_extruders_plus_one; ++extruder_idx) + if (const ExPolygons &ex_polygons = segmented_regions[layer_idx][extruder_idx]; !ex_polygons.empty()) + segmented_regions_cuts[extruder_idx] = diff_ex(ex_polygons, offset_ex(input_expolygons[layer_idx], cut_width)); segmented_regions[layer_idx] = std::move(segmented_regions_cuts); } }); // end of parallel_for @@ -1323,7 +1321,7 @@ static inline std::vector> mmu_segmentation_top_and_bott // Project upwards pointing painted triangles over top surfaces, // project downards pointing painted triangles over bottom surfaces. std::vector> top_raw(num_extruders), bottom_raw(num_extruders); - std::vector zs = zs_from_layers(print_object.layers()); + std::vector zs = zs_from_layers(layers); Transform3d object_trafo = print_object.trafo_centered(); #ifdef MMU_SEGMENTATION_DEBUG_TOP_BOTTOM @@ -1532,31 +1530,35 @@ static inline std::vector> mmu_segmentation_top_and_bott return triangles_by_color_merged; } -static std::vector>> merge_segmented_layers( - const std::vector>> &segmented_regions, - std::vector> &&top_and_bottom_layers, - const std::function &throw_on_cancel_callback) +static std::vector> merge_segmented_layers( + const std::vector> &segmented_regions, + std::vector> &&top_and_bottom_layers, + const size_t num_extruders, + const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions_merged(segmented_regions.size()); + const size_t num_layers = segmented_regions.size(); + std::vector> segmented_regions_merged(num_layers); + segmented_regions_merged.assign(num_layers, std::vector(num_extruders)); + assert(num_extruders + 1 == top_and_bottom_layers.size()); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { + assert(segmented_regions[layer_idx].size() == num_extruders + 1); + // Zero is skipped because it is the default color of the volume + for (size_t extruder_id = 1; extruder_id < num_extruders + 1; ++extruder_id) { throw_on_cancel_callback(); - // Zero is the default color of the volume. - if(colored_expoly.second == 0) - continue; - ExPolygons cut_colored_expoly = {colored_expoly.first}; - for (const std::vector &top_and_bottom_layer : top_and_bottom_layers) - cut_colored_expoly = diff_ex(cut_colored_expoly, top_and_bottom_layer[layer_idx]); - for (ExPolygon &ex_poly : cut_colored_expoly) - segmented_regions_merged[layer_idx].emplace_back(std::move(ex_poly), colored_expoly.second - 1); - } + if (!segmented_regions[layer_idx][extruder_id].empty()) { + ExPolygons segmented_regions_trimmed = segmented_regions[layer_idx][extruder_id]; + for (const std::vector &top_and_bottom_by_extruder : top_and_bottom_layers) + if (!top_and_bottom_by_extruder[layer_idx].empty() && !segmented_regions_trimmed.empty()) + segmented_regions_trimmed = diff_ex(segmented_regions_trimmed, top_and_bottom_by_extruder[layer_idx]); - for (size_t color_idx = 1; color_idx < top_and_bottom_layers.size(); ++color_idx) - for (ExPolygon &expoly : top_and_bottom_layers[color_idx][layer_idx]) - segmented_regions_merged[layer_idx].emplace_back(std::move(expoly), color_idx - 1); + segmented_regions_merged[layer_idx][extruder_id - 1] = std::move(segmented_regions_trimmed); + } + + append(segmented_regions_merged[layer_idx][extruder_id - 1], top_and_bottom_layers[extruder_id][layer_idx]); + } } }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - end"; @@ -1565,7 +1567,7 @@ static std::vector>> merge_segmented_la } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS -static void export_regions_to_svg(const std::string &path, const std::vector> ®ions, const ExPolygons &lslices) +static void export_regions_to_svg(const std::string &path, const std::vector ®ions, const ExPolygons &lslices) { const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; coordf_t stroke_width = scale_(0.05); @@ -1574,12 +1576,12 @@ static void export_regions_to_svg(const std::string &path, const std::vector ®ion : regions) { - int region_color = int(region.second); - if (region_color >= 0 && region_color < int(colors.size())) - svg.draw(region.first, colors[region_color]); + for (const ExPolygons &by_extruder : regions) { + size_t extrude_idx = &by_extruder - ®ions.front(); + if (extrude_idx >= 0 && extrude_idx < int(colors.size())) + svg.draw(by_extruder, colors[extrude_idx], stroke_width); else - svg.draw(region.first, "black"); + svg.draw(by_extruder, "black", stroke_width); } } #endif // MMU_SEGMENTATION_DEBUG_REGIONS @@ -1667,20 +1669,23 @@ static bool has_layer_only_one_color(const std::vector> return true; } -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions(print_object.layers().size()); - std::vector> painted_lines(print_object.layers().size()); - std::array painted_lines_mutex; - std::vector edge_grids(print_object.layers().size()); - const ConstLayerPtrsAdaptor layers = print_object.layers(); - std::vector input_expolygons(layers.size()); + const size_t num_extruders = print_object.print()->config().nozzle_diameter.size(); + const size_t num_layers = print_object.layers().size(); + std::vector> segmented_regions(num_layers); + segmented_regions.assign(num_layers, std::vector(num_extruders + 1)); + std::vector> painted_lines(num_layers); + std::array painted_lines_mutex; + std::vector edge_grids(num_layers); + const ConstLayerPtrsAdaptor layers = print_object.layers(); + std::vector input_expolygons(num_layers); throw_on_cancel_callback(); // Merge all regions and remove small holes BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, layers.size()), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); ExPolygons ex_polygons; @@ -1711,7 +1716,7 @@ std::vector>> multi_material_segmentati }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - end"; - for (size_t layer_idx = 0; layer_idx < layers.size(); ++layer_idx) { + for (size_t layer_idx = 0; layer_idx < num_layers; ++layer_idx) { throw_on_cancel_callback(); BoundingBox bbox(get_extents(layers[layer_idx]->regions())); bbox.merge(get_extents(input_expolygons[layer_idx])); @@ -1723,8 +1728,7 @@ std::vector>> multi_material_segmentati BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - projection of painted triangles - begin"; for (const ModelVolume *mv : print_object.model_object()->volumes) { - const size_t num_extruders = print_object.print()->config().nozzle_diameter.size() + 1; - tbb::parallel_for(tbb::blocked_range(1, num_extruders), [&mv, &print_object, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(1, num_extruders + 1), [&mv, &print_object, &layers, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t extruder_idx = range.begin(); extruder_idx < range.end(); ++extruder_idx) { throw_on_cancel_callback(); const indexed_triangle_set custom_facets = mv->mmu_segmentation_facets.get_facets(*mv, EnforcerBlockerType(extruder_idx)); @@ -1732,7 +1736,7 @@ std::vector>> multi_material_segmentati continue; const Transform3f tr = print_object.trafo().cast() * mv->get_matrix().cast(); - tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &layers, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { for (size_t facet_idx = range.begin(); facet_idx < range.end(); ++facet_idx) { float min_z = std::numeric_limits::max(); float max_z = std::numeric_limits::lowest(); @@ -1748,15 +1752,15 @@ std::vector>> multi_material_segmentati std::sort(facet.begin(), facet.end(), [](const Vec3f &p1, const Vec3f &p2) { return p1.z() < p2.z(); }); // Find lowest slice not below the triangle. - auto first_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(min_z - EPSILON), + auto first_layer = std::upper_bound(layers.begin(), layers.end(), float(min_z - EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); - auto last_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(max_z + EPSILON), + auto last_layer = std::upper_bound(layers.begin(), layers.end(), float(max_z + EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); --last_layer; for (auto layer_it = first_layer; layer_it != (last_layer + 1); ++layer_it) { const Layer *layer = *layer_it; - size_t layer_idx = layer_it - print_object.layers().begin(); + size_t layer_idx = layer_it - layers.begin(); if (input_expolygons[layer_idx].empty() || facet[0].z() > layer->slice_z || layer->slice_z > facet[2].z()) continue; @@ -1799,7 +1803,7 @@ std::vector>> multi_material_segmentati << std::count_if(painted_lines.begin(), painted_lines.end(), [](const std::vector &pl) { return !pl.empty(); }); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - layers segmentation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, print_object.layers().size()), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); if (!painted_lines[layer_idx].empty()) { @@ -1832,8 +1836,7 @@ std::vector>> multi_material_segmentati assert(!color_poly.front().empty()); if (has_layer_only_one_color(color_poly)) { // If the whole layer is painted using the same color, it is not needed to construct a Voronoi diagram for the segmentation of this layer. - for (const ExPolygon &ex_polygon : input_expolygons[layer_idx]) - segmented_regions[layer_idx].emplace_back(ex_polygon, size_t(color_poly.front().front().color)); + segmented_regions[layer_idx][size_t(color_poly.front().front().color)] = input_expolygons[layer_idx]; } else { MMU_Graph graph = build_graph(layer_idx, color_poly); remove_multiple_edges_in_vertices(graph, color_poly); @@ -1846,9 +1849,7 @@ std::vector>> multi_material_segmentati } #endif // MMU_SEGMENTATION_DEBUG_GRAPH - std::vector> segmentation = extract_colored_segments(graph); - for (std::pair ®ion : segmentation) - segmented_regions[layer_idx].emplace_back(std::move(region)); + segmented_regions[layer_idx] = extract_colored_segments(graph, num_extruders); } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS @@ -1868,11 +1869,11 @@ std::vector>> multi_material_segmentati throw_on_cancel_callback(); } -// return segmented_regions; - std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); + // The first index is extruder number (includes default extruder), and the second one is layer number + std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); throw_on_cancel_callback(); - std::vector>> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), throw_on_cancel_callback); + std::vector> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), num_extruders, throw_on_cancel_callback); throw_on_cancel_callback(); #ifdef MMU_SEGMENTATION_DEBUG_REGIONS diff --git a/src/libslic3r/MultiMaterialSegmentation.hpp b/src/libslic3r/MultiMaterialSegmentation.hpp index 07767111a8..4efdc69514 100644 --- a/src/libslic3r/MultiMaterialSegmentation.hpp +++ b/src/libslic3r/MultiMaterialSegmentation.hpp @@ -11,7 +11,7 @@ class PrintObject; class ExPolygon; // Returns MMU segmentation based on painting in MMU segmentation gizmo -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); } // namespace Slic3r diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index e2844a624c..a8936c32e3 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -538,7 +538,7 @@ template static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCancel throw_on_cancel) { // Returns MMU segmentation based on painting in MMU segmentation gizmo - std::vector>> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); + std::vector> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); assert(segmentation.size() == print_object.layer_count()); tbb::parallel_for( tbb::blocked_range(0, segmentation.size(), std::max(segmentation.size() / 128, size_t(1))), @@ -568,9 +568,7 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance bool layer_split = false; for (size_t extruder_id = 0; extruder_id < num_extruders; ++ extruder_id) { ByExtruder ®ion = by_extruder[extruder_id]; - for (const std::pair &colored_polygon : segmentation[layer_id]) - if (colored_polygon.second == extruder_id) - region.expolygons.emplace_back(std::move(colored_polygon.first)); + append(region.expolygons, std::move(segmentation[layer_id][extruder_id])); if (! region.expolygons.empty()) { region.bbox = get_extents(region.expolygons); layer_split = true; From f5a6e532982b42c36f3a39b02353c5a44325326f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Nov 2021 10:12:40 +0100 Subject: [PATCH 077/130] Fix of #7235 (Dimples in external perimeter after multi-material segmentation) --- src/libslic3r/MultiMaterialSegmentation.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index ddc17713b9..ba758d8a29 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -1557,7 +1557,14 @@ static std::vector> merge_segmented_layers( segmented_regions_merged[layer_idx][extruder_id - 1] = std::move(segmented_regions_trimmed); } - append(segmented_regions_merged[layer_idx][extruder_id - 1], top_and_bottom_layers[extruder_id][layer_idx]); + if (!top_and_bottom_layers[extruder_id][layer_idx].empty()) { + bool was_top_and_bottom_empty = segmented_regions_merged[layer_idx][extruder_id - 1].empty(); + append(segmented_regions_merged[layer_idx][extruder_id - 1], top_and_bottom_layers[extruder_id][layer_idx]); + + // Remove dimples (#7235) appearing after merging side segmentation of the model with tops and bottoms painted layers. + if (!was_top_and_bottom_empty) + segmented_regions_merged[layer_idx][extruder_id - 1] = offset2_ex(union_ex(segmented_regions_merged[layer_idx][extruder_id - 1]), SCALED_EPSILON, -SCALED_EPSILON); + } } } }); // end of parallel_for From e13be902836e52b0f859be00dbe39fd96d5b035a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Nov 2021 10:18:11 +0100 Subject: [PATCH 078/130] Fix of #7109 (Bulges with model's base color on multi-material painted models) --- src/libslic3r/PrintObjectSlice.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index a8936c32e3..84b2129389 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -630,6 +630,13 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance if (mine.empty()) break; } + // Filter out unprintable polygons produced by subtraction multi-material painted regions from layerm.region(). + // ExPolygon returned from multi-material segmentation does not precisely match ExPolygons in layerm.region() + // (because of preprocessing of the input regions in multi-material segmentation). Therefore, subtraction from + // layerm.region() could produce a huge number of small unprintable regions for the model's base extruder. + // This could, on some models, produce bulges with the model's base color (#7109). + if (! mine.empty()) + mine = opening(union_ex(mine), float(scale_(5 * EPSILON)), float(scale_(5 * EPSILON))); if (! mine.empty()) { ByRegion &dst = by_region[layerm.region().print_object_region_id()]; if (dst.expolygons.empty()) { From 69b7fac01f838bad38141b5f7ea8b6bdd5693dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Nov 2021 23:19:01 +0100 Subject: [PATCH 079/130] Fixed a compiler warning. --- src/libslic3r/MultiMaterialSegmentation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index ba758d8a29..7041f7b825 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -1563,7 +1563,7 @@ static std::vector> merge_segmented_layers( // Remove dimples (#7235) appearing after merging side segmentation of the model with tops and bottoms painted layers. if (!was_top_and_bottom_empty) - segmented_regions_merged[layer_idx][extruder_id - 1] = offset2_ex(union_ex(segmented_regions_merged[layer_idx][extruder_id - 1]), SCALED_EPSILON, -SCALED_EPSILON); + segmented_regions_merged[layer_idx][extruder_id - 1] = offset2_ex(union_ex(segmented_regions_merged[layer_idx][extruder_id - 1]), float(SCALED_EPSILON), -float(SCALED_EPSILON)); } } } From 9752fb5810612123164eef8f7dbc2863813ec876 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 8 Nov 2021 08:29:19 +0100 Subject: [PATCH 080/130] Tech ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - Additional button, added to imgui float slider, using svg icon --- resources/icons/edit_button_white.svg | 91 +++++++++++++++++++++++++++ src/imgui/imconfig.h | 3 +- src/slic3r/GUI/ImGuiWrapper.cpp | 13 +++- 3 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 resources/icons/edit_button_white.svg diff --git a/resources/icons/edit_button_white.svg b/resources/icons/edit_button_white.svg new file mode 100644 index 0000000000..9f5cda9c94 --- /dev/null +++ b/resources/icons/edit_button_white.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/imgui/imconfig.h b/src/imgui/imconfig.h index c5627f16bb..e95ae3adfa 100644 --- a/src/imgui/imconfig.h +++ b/src/imgui/imconfig.h @@ -154,7 +154,8 @@ namespace ImGui const wchar_t DocumentationHoverButton = 0x2601; const wchar_t ClippyMarker = 0x2602; const wchar_t InfoMarker = 0x2603; - + const wchar_t SliderFloatEditBtnIcon = 0x2604; + // void MyFunction(const char* name, const MyMatrix44& v); } diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index d18b7bf916..edd1ed2d96 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -8,6 +8,9 @@ #include #include #include +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT +#include +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT #include #include @@ -48,7 +51,9 @@ static const std::map font_icons = { {ImGui::RightArrowHoverButton , "notification_right_hover" }, {ImGui::PreferencesButton , "notification_preferences" }, {ImGui::PreferencesHoverButton , "notification_preferences_hover"}, - +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + {ImGui::SliderFloatEditBtnIcon, "edit_button_white" }, +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT }; static const std::map font_icons_large = { {ImGui::CloseNotifButton , "notification_close" }, @@ -492,8 +497,10 @@ bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float const ImGuiStyle& style = ImGui::GetStyle(); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, { 1, style.ItemSpacing.y }); ImGui::SameLine(); - const std::string btn_name = "..." + std::string(label); - if (ImGui::Button(btn_name.c_str())) { + + std::wstring btn_name; + btn_name = ImGui::SliderFloatEditBtnIcon + boost::nowide::widen(std::string(label)); + if (ImGui::Button(into_u8(btn_name).c_str())) { ImGui::SetKeyboardFocusHere(-1); this->set_requires_extra_frame(); } From c782c2d389ccbc67d0d63ebad37896d6fa20c0d9 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 8 Nov 2021 08:38:37 +0100 Subject: [PATCH 081/130] #7245 - Added validation of values typed by user in scale and size fields of object/part manipulator in sidebar --- src/slic3r/GUI/GUI_ObjectManipulation.cpp | 30 ++++++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index c279fad903..f5a274d69d 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -866,6 +866,9 @@ void ObjectManipulation::change_rotation_value(int axis, double value) void ObjectManipulation::change_scale_value(int axis, double value) { + if (value <= 0.0) + return; + if (std::abs(m_cache.scale_rounded(axis) - value) < EPSILON) return; @@ -882,6 +885,9 @@ void ObjectManipulation::change_scale_value(int axis, double value) void ObjectManipulation::change_size_value(int axis, double value) { + if (value <= 0.0) + return; + if (std::abs(m_cache.size_rounded(axis) - value) < EPSILON) return; @@ -947,10 +953,26 @@ void ObjectManipulation::on_change(const std::string& opt_key, int axis, double change_position_value(axis, new_value); else if (opt_key == "rotation") change_rotation_value(axis, new_value); - else if (opt_key == "scale") - change_scale_value(axis, new_value); - else if (opt_key == "size") - change_size_value(axis, new_value); + else if (opt_key == "scale") { + if (new_value > 0.0) + change_scale_value(axis, new_value); + else { + new_value = m_cache.scale(axis); + m_cache.scale(axis) = 0.0; + m_cache.scale_rounded(axis) = DBL_MAX; + change_scale_value(axis, new_value); + } + } + else if (opt_key == "size") { + if (new_value > 0.0) + change_size_value(axis, new_value); + else { + new_value = m_cache.size(axis); + m_cache.size(axis) = 0.0; + m_cache.size_rounded(axis) = DBL_MAX; + change_size_value(axis, new_value); + } + } } void ObjectManipulation::set_uniform_scaling(const bool new_value) From 24d13031268aaa0f617657521af8c22690057191 Mon Sep 17 00:00:00 2001 From: combolek <4743344+combolek@users.noreply.github.com> Date: Sat, 6 Nov 2021 12:39:52 -0700 Subject: [PATCH 082/130] =?UTF-8?q?Fixes=20issue=20#7247:=20Wxwidgets=203.?= =?UTF-8?q?0=20yet=20again.=20MsgDialog.hpp:270:40:=20error:=20=E2=80=98wx?= =?UTF-8?q?ASCII=5FSTR=E2=80=99=20was=20not=20declared=20in=20this=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace wxASCII_STR with wxString::FromAscii for compatibility with wxWidgets 3.0 --- src/slic3r/GUI/MsgDialog.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 909ff396d6..a4807fd06d 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -98,7 +98,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLI_HORIZONTAL, - const wxString& name = wxASCII_STR(wxTextCtrlNameStr)) + const wxString& name = wxString::FromAscii(wxTextCtrlNameStr)) : wxTextCtrl(parent, id, wxEmptyString, pos, size!=wxDefaultSize ? size : (style == wxLI_HORIZONTAL ? wxSize(10, 1) : wxSize(1, 10)), wxSIMPLE_BORDER, wxDefaultValidator, name) { this->Enable(false); @@ -268,7 +268,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLI_HORIZONTAL, - const wxString& name = wxASCII_STR(wxStaticLineNameStr)) + const wxString& name = wxString::FromAscii(wxStaticLineNameStr)) : wxStaticLine(parent, id, pos, size, style, name) {} ~StaticLine() {} }; From 8bc074f5f2c9653293af68b2b78073056ff6267a Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 8 Nov 2021 11:06:37 +0100 Subject: [PATCH 083/130] MSW: Dark Mode: Update of PrintHostDialogs --- src/slic3r/GUI/GUI_App.cpp | 1 + src/slic3r/GUI/PrintHostDialogs.cpp | 10 ++++++++++ src/slic3r/GUI/PrintHostDialogs.hpp | 1 + 3 files changed, 12 insertions(+) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 025614d4d2..9c16a782e3 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1620,6 +1620,7 @@ void GUI_App::update_ui_from_settings() m_force_colors_update = false; mainframe->force_color_changed(); mainframe->diff_dialog.force_color_changed(); + mainframe->printhost_queue_dlg()->force_color_changed(); #ifdef _MSW_DARK_MODE update_scrolls(mainframe); #endif //_MSW_DARK_MODE diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 3f2dc5a447..4fd45f380a 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -101,6 +101,8 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_pr EndDialog(wxID_OK); }); + wxGetApp().UpdateDlgDarkUI(this); + Fit(); CenterOnParent(); @@ -331,6 +333,14 @@ void PrintHostQueueDialog::on_dpi_changed(const wxRect &suggested_rect) save_user_data(UDT_SIZE | UDT_POSITION | UDT_COLS); } +void PrintHostQueueDialog::on_sys_color_changed() +{ +#ifdef _WIN32 + wxGetApp().UpdateDlgDarkUI(this); + wxGetApp().UpdateDVCDarkUI(job_list); +#endif +} + PrintHostQueueDialog::JobState PrintHostQueueDialog::get_state(int idx) { wxCHECK_MSG(idx >= 0 && idx < job_list->GetItemCount(), ST_ERROR, "Out of bounds access to job list"); diff --git a/src/slic3r/GUI/PrintHostDialogs.hpp b/src/slic3r/GUI/PrintHostDialogs.hpp index 294593bd1c..eb56611590 100644 --- a/src/slic3r/GUI/PrintHostDialogs.hpp +++ b/src/slic3r/GUI/PrintHostDialogs.hpp @@ -72,6 +72,7 @@ public: } protected: void on_dpi_changed(const wxRect &suggested_rect) override; + void on_sys_color_changed() override; private: enum Column { From ce1fbbfa7c1867f651eb26aba9ea403e0b43c365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 8 Nov 2021 11:13:07 +0100 Subject: [PATCH 084/130] OSX specific: Fix of #7259 - (Darker colors of objects inside the multi-material gizmo on macOS Monterey on Arm64 CPU) Since macOS 12 (Monterey), the issue with the opposite direction on macOS running on Arm64 CPU seems to be fixed, and computed triangle normals inside fragment shader using dFdx and dFdy have the right direction. So the previous patch bad51cdb520919362100b4381b9bb03cd1830643 is constrained to just macOS versions before macOS 12 (Monterey). --- src/slic3r/GUI/GLShadersManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GLShadersManager.cpp b/src/slic3r/GUI/GLShadersManager.cpp index 0214652b20..01407b09a6 100644 --- a/src/slic3r/GUI/GLShadersManager.cpp +++ b/src/slic3r/GUI/GLShadersManager.cpp @@ -79,7 +79,9 @@ std::pair GLShadersManager::init() // For Apple's on Arm CPU computed triangle normals inside fragment shader using dFdx and dFdy has the opposite direction. // Because of this, objects had darker colors inside the multi-material gizmo. // Based on https://stackoverflow.com/a/66206648, the similar behavior was also spotted on some other devices with Arm CPU. - if (platform_flavor() == PlatformFlavor::OSXOnArm) + // Since macOS 12 (Monterey), this issue with the opposite direction on Apple's Arm CPU seems to be fixed, and computed + // triangle normals inside fragment shader have the right direction. + if (platform_flavor() == PlatformFlavor::OSXOnArm && wxPlatformInfo::Get().GetOSMajorVersion() < 12) valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); else valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}); From 5190a1f425e9ab8bb2e53ed03cff69c7c9bf7227 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 8 Nov 2021 12:56:38 +0100 Subject: [PATCH 085/130] #7258 - Fixed cut of merged object --- src/libslic3r/Model.cpp | 45 +++++++++++++++---------------- src/slic3r/GUI/GUI_ObjectList.cpp | 39 +++++++++++++-------------- 2 files changed, 41 insertions(+), 43 deletions(-) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 8531ab07e0..81627347b0 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1263,10 +1263,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr instances[instance]->get_mirror() ); - z -= instances[instance]->get_offset()(2); + z -= instances[instance]->get_offset().z(); - // Lower part per-instance bounding boxes - std::vector lower_bboxes { instances.size() }; + // Displacement (in instance coordinates) to be applied to place the upper parts + Vec3d local_displace = Vec3d::Zero(); for (ModelVolume *volume : volumes) { const auto volume_matrix = volume->get_matrix(); @@ -1286,8 +1286,7 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr if (attributes.has(ModelObjectCutAttribute::KeepLower)) lower->add_volume(*volume); } - else if (! volume->mesh().empty()) { - + else if (! volume->mesh().empty()) { // Transform the mesh by the combined transformation matrix. // Flip the triangles in case the composite transformation is left handed. TriangleMesh mesh(volume->mesh()); @@ -1327,13 +1326,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr assert(vol->config.id() != volume->config.id()); vol->set_material(volume->material_id(), *volume->material()); - // Compute the lower part instances' bounding boxes to figure out where to place - // the upper part - if (attributes.has(ModelObjectCutAttribute::KeepUpper)) { - for (size_t i = 0; i < instances.size(); i++) { - lower_bboxes[i].merge(instances[i]->transform_mesh_bounding_box(lower_mesh, true)); - } - } + // Compute the displacement (in instance coordinates) to be applied to place the upper parts + // The upper part displacement is set to half of the lower part bounding box + // this is done in hope at least a part of the upper part will always be visible and draggable + local_displace = lower->full_raw_mesh_bounding_box().size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); } } } @@ -1341,17 +1337,18 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr ModelObjectPtrs res; if (attributes.has(ModelObjectCutAttribute::KeepUpper) && upper->volumes.size() > 0) { - upper->invalidate_bounding_box(); - upper->center_around_origin(); + if (!upper->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + upper->center_around_origin(); + upper->translate_instances(-upper->origin_translation); + upper->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation - for (size_t i = 0; i < instances.size(); i++) { + for (size_t i = 0; i < instances.size(); ++i) { auto &instance = upper->instances[i]; const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - // The upper part displacement is set to half of the lower part bounding box - // this is done in hope at least a part of the upper part will always be visible and draggable - const Vec3d displace = lower_bboxes[i].size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); + const double rot_z = instance->get_rotation().z(); + const Vec3d displace = Geometry::assemble_transform(Vec3d::Zero(), instance->get_rotation()) * local_displace; instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset + displace); @@ -1361,14 +1358,16 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr res.push_back(upper); } if (attributes.has(ModelObjectCutAttribute::KeepLower) && lower->volumes.size() > 0) { - lower->invalidate_bounding_box(); - lower->center_around_origin(); + if (!lower->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + lower->center_around_origin(); + lower->translate_instances(-lower->origin_translation); + lower->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation for (auto *instance : lower->instances) { const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - + const double rot_z = instance->get_rotation().z(); instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset); instance->set_rotation(Vec3d(attributes.has(ModelObjectCutAttribute::FlipLower) ? Geometry::deg2rad(180.0) : 0.0, 0.0, rot_z)); diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 8a24bee2eb..7674fe9085 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -2044,8 +2044,7 @@ void ObjectList::split() void ObjectList::merge(bool to_multipart_object) { // merge selected objects to the multipart object - if (to_multipart_object) - { + if (to_multipart_object) { auto get_object_idxs = [this](std::vector& obj_idxs, wxDataViewItemArray& sels) { // check selections and split instances to the separated objects... @@ -2056,8 +2055,7 @@ void ObjectList::merge(bool to_multipart_object) break; } - if (!instance_selection) - { + if (!instance_selection) { for (wxDataViewItem item : sels) { assert(m_objects_model->GetItemType(item) & itObject); obj_idxs.emplace_back(m_objects_model->GetIdByItem(item)); @@ -2069,8 +2067,7 @@ void ObjectList::merge(bool to_multipart_object) std::map> sel_map; std::set empty_set; for (wxDataViewItem item : sels) { - if (m_objects_model->GetItemType(item) & itObject) - { + if (m_objects_model->GetItemType(item) & itObject) { int obj_idx = m_objects_model->GetIdByItem(item); int inst_cnt = (*m_objects)[obj_idx]->instances.size(); if (inst_cnt == 1) @@ -2087,8 +2084,7 @@ void ObjectList::merge(bool to_multipart_object) // all objects, created from the instances will be added to the end of list int new_objects_cnt = 0; // count of this new objects - for (auto map_item : sel_map) - { + for (auto map_item : sel_map) { int obj_idx = map_item.first; // object with just 1 instance if (map_item.second.empty()) { @@ -2148,37 +2144,36 @@ void ObjectList::merge(bool to_multipart_object) new_object->name = _u8L("Merged"); ModelConfig &config = new_object->config; - for (int obj_idx : obj_idxs) - { + for (int obj_idx : obj_idxs) { ModelObject* object = (*m_objects)[obj_idx]; const Geometry::Transformation& transformation = object->instances[0]->get_transformation(); - Vec3d scale = transformation.get_scaling_factor(); - Vec3d mirror = transformation.get_mirror(); - Vec3d rotation = transformation.get_rotation(); + const Vec3d scale = transformation.get_scaling_factor(); + const Vec3d mirror = transformation.get_mirror(); + const Vec3d rotation = transformation.get_rotation(); if (object->id() == (*m_objects)[obj_idxs.front()]->id()) new_object->add_instance(); - Transform3d volume_offset_correction = new_object->instances[0]->get_transformation().get_matrix().inverse() * transformation.get_matrix(); + const Transform3d& volume_offset_correction = transformation.get_matrix(); // merge volumes for (const ModelVolume* volume : object->volumes) { ModelVolume* new_volume = new_object->add_volume(*volume); //set rotation - Vec3d vol_rot = new_volume->get_rotation() + rotation; + const Vec3d vol_rot = new_volume->get_rotation() + rotation; new_volume->set_rotation(vol_rot); // set scale - Vec3d vol_sc_fact = new_volume->get_scaling_factor().cwiseProduct(scale); + const Vec3d vol_sc_fact = new_volume->get_scaling_factor().cwiseProduct(scale); new_volume->set_scaling_factor(vol_sc_fact); // set mirror - Vec3d vol_mirror = new_volume->get_mirror().cwiseProduct(mirror); + const Vec3d vol_mirror = new_volume->get_mirror().cwiseProduct(mirror); new_volume->set_mirror(vol_mirror); // set offset - Vec3d vol_offset = volume_offset_correction* new_volume->get_offset(); + const Vec3d vol_offset = volume_offset_correction* new_volume->get_offset(); new_volume->set_offset(vol_offset); } new_object->sort_volumes(wxGetApp().app_config->get("order_volumes") == "1"); @@ -2211,6 +2206,11 @@ void ObjectList::merge(bool to_multipart_object) for (const auto& range : object->layer_config_ranges) new_object->layer_config_ranges.emplace(range); } + + new_object->center_around_origin(); + new_object->translate_instances(-new_object->origin_translation); + new_object->origin_translation = Vec3d::Zero(); + // remove selected objects remove(); @@ -2221,8 +2221,7 @@ void ObjectList::merge(bool to_multipart_object) } // merge all parts to the one single object // all part's settings will be lost - else - { + else { wxDataViewItem item = GetSelection(); if (!item) return; From 869276aedb796a589430ea178ea3e9c2a0fba3cd Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 8 Nov 2021 13:43:53 +0100 Subject: [PATCH 086/130] Tech ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - Changed background color of additional button and its icon --- .../icons/{edit_button_white.svg => edit_button.svg} | 10 +++++----- src/slic3r/GUI/ImGuiWrapper.cpp | 6 +++++- 2 files changed, 10 insertions(+), 6 deletions(-) rename resources/icons/{edit_button_white.svg => edit_button.svg} (93%) diff --git a/resources/icons/edit_button_white.svg b/resources/icons/edit_button.svg similarity index 93% rename from resources/icons/edit_button_white.svg rename to resources/icons/edit_button.svg index 9f5cda9c94..25f338b405 100644 --- a/resources/icons/edit_button_white.svg +++ b/resources/icons/edit_button.svg @@ -9,7 +9,7 @@ viewBox="0 0 348.882 348.882" style="enable-background:new 0 0 348.882 348.882;" xml:space="preserve" - sodipodi:docname="edit_button_2.svg" + sodipodi:docname="edit_button_mod.svg" inkscape:version="1.1 (c68e22c387, 2021-05-23)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -28,8 +28,8 @@ inkscape:pagecheckerboard="0" showgrid="false" inkscape:zoom="2.3274346" - inkscape:cx="4.9410626" - inkscape:cy="174.65582" + inkscape:cx="89.583614" + inkscape:cy="140.28321" inkscape:window-width="1920" inkscape:window-height="1001" inkscape:window-x="-9" @@ -39,10 +39,10 @@ + style="fill:#808080;fill-opacity:1" /> diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index edd1ed2d96..32fe71f678 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -52,7 +52,7 @@ static const std::map font_icons = { {ImGui::PreferencesButton , "notification_preferences" }, {ImGui::PreferencesHoverButton , "notification_preferences_hover"}, #if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - {ImGui::SliderFloatEditBtnIcon, "edit_button_white" }, + {ImGui::SliderFloatEditBtnIcon, "edit_button" }, #endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT }; static const std::map font_icons_large = { @@ -500,10 +500,14 @@ bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float std::wstring btn_name; btn_name = ImGui::SliderFloatEditBtnIcon + boost::nowide::widen(std::string(label)); + ImGui::PushStyleColor(ImGuiCol_Button, { 0.25f, 0.25f, 0.25f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, { 0.5f, 0.5f, 0.5f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, { 0.5f, 0.5f, 0.5f, 1.0f }); if (ImGui::Button(into_u8(btn_name).c_str())) { ImGui::SetKeyboardFocusHere(-1); this->set_requires_extra_frame(); } + ImGui::PopStyleColor(3); if (ImGui::IsItemHovered()) this->tooltip(into_u8(_L("Edit")).c_str(), max_tooltip_width); From 5c55bee92367d7ca34df4f5d47fc171ff10ca7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Mat=C4=9Bna?= <33929324+lukasmatena@users.noreply.github.com> Date: Mon, 8 Nov 2021 14:42:38 +0100 Subject: [PATCH 087/130] Update How to build - Linux et al.md --- doc/How to build - Linux et al.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/doc/How to build - Linux et al.md b/doc/How to build - Linux et al.md index 090a97e6c3..9d193aef79 100644 --- a/doc/How to build - Linux et al.md +++ b/doc/How to build - Linux et al.md @@ -13,7 +13,9 @@ This guide describes building PrusaSlicer statically against dependencies pulled #### 0. Prerequisities -You must have CMake, GNU build tools and git. If you don't already have them, install them as usual from your distribution packages (e.g. on Ubuntu, you would run `sudo apt-get install cmake build-essential git`, etc.) +CMake, GNU build tools, git and m4 macro processor have to be installed. Unless that's already the case, install them as usual from your distribution packages. E.g. on Ubuntu, run `sudo apt-get install cmake build-essential git m4`. The names of the packages may be different on different distros. + +Although most of dependencies are handled by the build script, PrusaSlicer still expects that some libraries will be available in the system (GTK, MESA, gettext). E.g., on Ubuntu, install the required packages by running `sudo apt-get install libgtk-3-dev libglu1-mesa-dev gettext`. The names of the packages may be different on different distros. #### 1. Cloning the repository @@ -28,12 +30,12 @@ This will download the source code into a new directory and `cd` into it. You ca #### 2. Building dependencies -PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. The source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): +PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. PrusaSlicer source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): cd deps mkdir build cd build - cmake .. + cmake .. -DDEP_WX_GTK3=ON make cd ../.. @@ -43,24 +45,20 @@ PrusaSlicer uses CMake and the build is quite simple, the only tricky part is re #### 3. Building PrusaSlicer -Now when you have the dependencies compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run +Now when the dependencies are compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run mkdir build cd build - cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local + cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_GTK=3 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local make -j4 -And that's it. You can now run the freshly built PrusaSlicer binary: +And that's it. It is now possible to run the freshly built PrusaSlicer binary: cd src ./prusa-slicer -#### Troubleshooting - -Although most of the dependencies are handled by the build script, we still rely on some system libraries (such as GTK, GL, etc). It is quite likely that you have them already installed, but in case that CMake reports any library missing, install the respective package from your distribution and run CMake again. - ## Useful CMake flags when building dependencies @@ -86,8 +84,7 @@ See the CMake files to get the complete list. As already mentioned above, dynamic linking of dependencies is possible, but PrusaSlicer team is unable to troubleshoot (Linux world is way too complex). Feel free to do so, but you are on your own. Several remarks though: -The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Many don't necessarily need to be as recent -as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. +The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Some of the dependencies don't have to be as recent as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. #### wxWidgets By default, PrusaSlicer looks for wxWidgets 3.1. Our build script in fact downloads specific patched version of wxWidgets. If you want to link against wxWidgets 3.0 (which are still provided by most distributions because wxWidgets 3.1 have not yet been declared stable), you must set `-DSLIC3R_WX_STABLE=ON` when running CMake. Note that while PrusaSlicer can be linked against wWidgets 3.0, the combination is not well tested and there might be bugs in the resulting application. From ab6ceaa68c884c8376572be84e5eb5602c13f15b Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Tue, 9 Nov 2021 12:29:22 +0100 Subject: [PATCH 088/130] #7246 - Fixed rrror when resize object to bed limit --- src/libslic3r/Model.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 81627347b0..e88188b449 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -40,7 +40,8 @@ ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_ break; } } - const bool contained_z = -1e10 < obj_min_z && obj_max_z < print_volume_height; + + const bool contained_z = -1e10 < obj_min_z && obj_max_z <= print_volume_height; return (contained_xy && contained_z) ? ModelInstancePVS_Inside : ModelInstancePVS_Partly_Outside; } From a5f20d4c71e7d9fb9b77e80ff48fa67881848ae4 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 9 Nov 2021 12:52:44 +0100 Subject: [PATCH 089/130] MsgDialog: Delete redundant code (fix for https://github.com/prusa3d/PrusaSlicer/issues/7254) --- src/slic3r/GUI/MsgDialog.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index bc17dd9cec..2515f0281b 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -55,11 +55,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he btn_sizer->Add(button); } - if (! bitmap.IsOk()) { - bitmap = create_scaled_bitmap("PrusaSlicer_192px.png", this, 192); - } - - logo = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap); + logo = new wxStaticBitmap(this, wxID_ANY, bitmap.IsOk() ? bitmap : wxNullBitmap); topsizer->Add(logo, 0, wxALL, BORDER); topsizer->Add(rightsizer, 1, wxTOP | wxBOTTOM | wxRIGHT | wxEXPAND, BORDER); From 99e9cea9ad08afa9554c9101105375f02c8a3b9d Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Tue, 9 Nov 2021 14:04:20 +0100 Subject: [PATCH 090/130] 1.4.0-beta2 - Added SLA material colors. Updated BASF filament profiles. --- resources/profiles/PrusaResearch.idx | 1 + resources/profiles/PrusaResearch.ini | 302 +++++++++++++++++++++++++-- 2 files changed, 289 insertions(+), 14 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index f73bedebfc..34d0c09583 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.4.0-beta0 +1.4.0-beta2 Added SLA material colors. Updated BASF filament profiles. 1.4.0-beta1 Updated pad wall slope angle for SLA printers. Updated Filatech Filacarbon profile for Prusa MINI. 1.4.0-beta0 Added multiple Filatech and BASF filament profiles. Added material profiles for SL1S. min_slic3r_version = 2.4.0-alpha0 diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 25ce1c2701..27d80b5337 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.4.0-beta1 +config_version = 1.4.0-beta2 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2925,9 +2925,14 @@ bridge_fan_speed = 100 filament_type = PET disable_fan_first_layers = 1 full_fan_speed_layer = 3 + +filament_notes = "BASF Forward AM Ultrafuse PET\nMaterial profile version 1.0\n\nMaterial Description\nUltrafuse PET is made from a premium PET and prints as easy as PLA, but is much stronger. The filament has a large operating window for printing (temperature vs. speed), so it can be used on every 3D-printer. PET will give you outstanding printing results: a good layer adhesion, a high resolution and it is easy to handle. Ultrafuse PET can be 100% recycled, is watertight and has great colors and finish.\n\nPrinting Recommendations:\nUltrafuse PET can be printed directly onto a clean build plate. For challenging prints, use 3dLac to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 filament_retract_lift = 0 -# filament_retract_length = 3 -# filament_max_volumetric_speed = 7 [filament:Ultrafuse PET @MINI] inherits = Ultrafuse PET; *PETMINI* @@ -2939,11 +2944,21 @@ filament_cost = filament_density = 1.25 filament_spool_weight = 0 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse PLA PRO1\nMaterial profile version 1.0\n\nMaterial Description\nPLA PRO1 is an extremely versatile tough PLA filament made for professionals. It reduces your printing time by 30% – 80%, (subject to printer and object limitations) and the strength exceeds overall mechanical properties of printed ABS parts. Printer settings can be tuned to achieve blazing fast speeds or an unrivaled surface finish. The excellent quality control ensures the highest levels of consistency between colors and batches, it will perform as expected, every time.\n\nPrinting Recommendations:\nUltrafuse PLA PRO1 can be printed directly onto a clean build plate.\n" +filament_retract_length = 2 +filament_retract_lift = 0 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_retract_layer_change = 0 +compatible_printers_condition = printer_model!="MINI" and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) + +[filament:Ultrafuse PRO1 @MINI] +inherits = Ultrafuse PRO1 +filament_retract_length = nil +filament_retract_speed = nil +filament_retract_before_travel = nil +filament_retract_layer_change = nil +compatible_printers_condition = printer_model=="MINI" [filament:Ultrafuse ABS] inherits = *ABSC* @@ -2955,17 +2970,19 @@ max_fan_speed = 20 bed_temperature = 100 disable_fan_first_layers = 3 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse ABS\nMaterial profile version 1.0\n\nMaterial Description\nABS is the second most used 3D printing material. It is strong, flexible and has a high heat resistance. ABS is a preferred plastic for engineers and professional applications. ABS can be smoothened with acetone. To make a proper 3D print with ABS you will need a heated print bed. The filament is available in 9 colors.\n\nPrinting Recommendations:\n\nApply Tape, adhesion spray or glue to a clean build plate to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 [filament:Ultrafuse ABS @MINI] inherits = Ultrafuse ABS; *ABSMINI* -[filament:Ultrafuse 17-4 PH] +[filament:Ultrafuse Metal] inherits = *ABSC* +renamed_from = "Ultrafuse 17-4 PH" filament_vendor = BASF filament_cost = filament_density = 4.5 @@ -4607,6 +4624,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-Vulcan Gold @0.025] inherits = *common 0.025* @@ -4614,6 +4632,7 @@ exposure_time = 12 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.025] inherits = *common 0.025* @@ -4621,6 +4640,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:3DM-HR Red Wine @0.025] inherits = *common 0.025* @@ -4628,6 +4648,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:BlueCast Phrozen Wax @0.025] inherits = *common 0.025* @@ -4635,6 +4656,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.025] inherits = *common 0.025* @@ -4642,6 +4664,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast EcoGray @0.025] inherits = *common 0.025* @@ -4649,6 +4672,7 @@ exposure_time = 6 initial_exposure_time = 40 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.025] inherits = *common 0.025* @@ -4656,6 +4680,7 @@ exposure_time = 6 initial_exposure_time = 45 material_type = Dental material_vendor = BlueCast +material_colour = #B0B000 [sla_material:BlueCast Model Dental Gray @0.025] inherits = *common 0.025* @@ -4663,6 +4688,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast X10 @0.025] inherits = *common 0.025* @@ -4670,6 +4696,7 @@ exposure_time = 4 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.025] inherits = *common 0.025* @@ -4677,6 +4704,7 @@ exposure_time = 6 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Esun Bio-Photopolymer Resin White @0.025] inherits = *common 0.025* @@ -4684,6 +4712,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:FunToDo Castable Blend Red @0.025] inherits = *common 0.025* @@ -4691,6 +4720,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Snow White @0.025] inherits = *common 0.025* @@ -4698,6 +4728,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:Harz Labs Basic Resin Red @0.025] inherits = *common 0.025* @@ -4705,6 +4736,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Cherry @0.025] inherits = *common 0.025* @@ -4712,6 +4744,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.025] inherits = *common 0.025* @@ -4719,6 +4752,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #007EFD [sla_material:Harz Labs Dental Cast Red @0.025] inherits = *common 0.025* @@ -4726,6 +4760,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Esun Standard Resin Black @0.025] inherits = *common 0.025* @@ -4733,6 +4768,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #007EFD [sla_material:Photocentric Ash Grey @0.025] inherits = *common 0.025* @@ -4740,6 +4776,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Resinworks 3D Violet @0.025] inherits = *common 0.025* @@ -4747,6 +4784,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.025] inherits = *common 0.025* @@ -4754,6 +4792,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Monocure 3D Black Rapid Resin @0.025] inherits = *common 0.025* @@ -4761,6 +4800,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD [sla_material:Monocure 3D Blue Rapid Resin @0.025] inherits = *common 0.025* @@ -4768,6 +4808,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD ## Prusa Polymers 0.025 @@ -4777,6 +4818,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025] inherits = *common 0.025* @@ -4784,6 +4826,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.025] inherits = *common 0.025* @@ -4791,6 +4834,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.025 @@ -4800,6 +4844,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Grey Tough @0.025] inherits = *common 0.025* @@ -4807,6 +4852,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Azure Blue Tough @0.025] inherits = *common 0.025* @@ -4814,6 +4860,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.025] ## inherits = *common 0.025* @@ -4828,6 +4875,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Beige Tough @0.025] inherits = *common 0.025* @@ -4835,6 +4883,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.025] inherits = *common 0.025* @@ -4842,6 +4891,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa White Tough @0.025] inherits = *common 0.025* @@ -4849,6 +4899,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Tough @0.025] inherits = *common 0.025* @@ -4856,6 +4907,7 @@ exposure_time = 6 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.025] inherits = *common 0.025* @@ -4863,6 +4915,7 @@ exposure_time = 12 initial_exposure_time = 40 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.025] inherits = *common 0.025* @@ -4870,6 +4923,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Clear ABS like @0.025] inherits = *common 0.025* @@ -4877,6 +4931,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.025] inherits = *common 0.025* @@ -4884,6 +4939,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Grey High Tenacity @0.025] inherits = *common 0.025* @@ -4891,6 +4947,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Super Low Odor Cyan Tough @0.025] inherits = *common 0.025* @@ -4898,6 +4955,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Super Low Odor Magenta Tough @0.025] inherits = *common 0.025* @@ -4905,6 +4963,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.025] inherits = *common 0.025* @@ -4912,6 +4971,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Orange-Yellow Teeth Model @0.025] inherits = *common 0.025* @@ -4919,6 +4979,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Vibrant Orange Tough @0.025] inherits = *common 0.025* @@ -4926,6 +4987,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.025] inherits = *common 0.025* @@ -4933,6 +4995,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Deep Blue Transparent Tough @0.025] inherits = *common 0.025* @@ -4940,6 +5003,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Yellow Jewelry Casting @0.025] inherits = *common 0.025* @@ -4947,6 +5011,7 @@ exposure_time = 8 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Siraya Tech Simple Clear @0.025] inherits = *common 0.025* @@ -4954,6 +5019,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.025] inherits = *common 0.025* @@ -4961,6 +5027,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.025] inherits = *common 0.025* @@ -4968,6 +5035,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.025] inherits = *common 0.025* @@ -4975,6 +5043,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.025] inherits = *common 0.025* @@ -4982,6 +5051,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.025] inherits = *common 0.025* @@ -4989,6 +5059,7 @@ exposure_time = 11 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.025] inherits = *common 0.025* @@ -4996,6 +5067,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.025] inherits = *common 0.025* @@ -5003,6 +5075,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:NextDent Model 2.0 Grey @0.025] inherits = *common 0.025* @@ -5010,6 +5083,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #808080 [sla_material:NextDent Surgical Guide @0.025] inherits = *common 0.025* @@ -5017,6 +5091,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FF8040 [sla_material:NextDent Cast Purple @0.025] inherits = *common 0.025* @@ -5024,6 +5099,7 @@ exposure_time = 7 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:MakerJuice Labs Standard Red @0.025] inherits = *common 0.025* @@ -5031,6 +5107,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.025] inherits = *common 0.025* @@ -5038,6 +5115,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.025] inherits = *common 0.025* @@ -5045,6 +5123,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Zortrax Black @0.025] inherits = *common 0.025* @@ -5052,6 +5131,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #007EFD ########### Materials 0.05 @@ -5061,6 +5141,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Dental material_vendor = Asiga +material_colour = #FFEEE6 [sla_material:Asiga PlasGRAY @0.05] inherits = *common 0.05* @@ -5068,6 +5149,7 @@ exposure_time = 29 initial_exposure_time = 60 material_type = Tough material_vendor = Asiga +material_colour = #C0C0C0 [sla_material:Ameralabs AMD 3 LED @0.05] inherits = *common 0.05* @@ -5075,6 +5157,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Ameralabs +material_colour = #808080 [sla_material:BlueCast EcoGray @0.05] inherits = *common 0.05* @@ -5082,6 +5165,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.05] inherits = *common 0.05* @@ -5089,6 +5173,7 @@ exposure_time = 7 initial_exposure_time = 50 material_type = Dental material_vendor = BlueCast +material_colour = #FFEEE6 [sla_material:BlueCast Model Dental Gray @0.05] inherits = *common 0.05* @@ -5096,6 +5181,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast LCD-DLP Original @0.05] inherits = *common 0.05* @@ -5103,6 +5189,7 @@ exposure_time = 10 initial_exposure_time = 60 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Phrozen Wax @0.05] inherits = *common 0.05* @@ -5110,6 +5197,7 @@ exposure_time = 16 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.05] inherits = *common 0.05* @@ -5117,6 +5205,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #E800E8 [sla_material:BlueCast S+ @0.05] inherits = *common 0.05* @@ -5124,6 +5213,7 @@ exposure_time = 9 initial_exposure_time = 45 material_type = Tough material_vendor = BlueCast +material_colour = #00B900 [sla_material:BlueCast X5 @0.05] inherits = *common 0.05* @@ -5131,6 +5221,7 @@ exposure_time = 9 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast X10 @0.05] inherits = *common 0.05* @@ -5138,6 +5229,7 @@ exposure_time = 6 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast 23LS @0.05] inherits = *common 0.05* @@ -5145,6 +5237,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.05] inherits = *common 0.05* @@ -5152,6 +5245,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Monocure 3D Black Rapid Resin @0.05] inherits = *common 0.05* @@ -5159,6 +5253,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD [sla_material:Monocure 3D Blue Rapid Resin @0.05] inherits = *common 0.05* @@ -5166,6 +5261,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD [sla_material:Monocure 3D Clear Rapid Resin @0.05] inherits = *common 0.05* @@ -5173,6 +5269,7 @@ exposure_time = 8 initial_exposure_time = 40 material_type = Tough material_vendor = Monocure +material_colour = #F8F8F8 [sla_material:Monocure 3D Grey Rapid Resin @0.05] inherits = *common 0.05* @@ -5180,6 +5277,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Monocure +material_colour = #C0C0C0 [sla_material:Monocure 3D White Rapid Resin @0.05] inherits = *common 0.05* @@ -5187,6 +5285,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #FFFFFF [sla_material:3DM-HTR140 (high temperature) @0.05] inherits = *common 0.05* @@ -5194,6 +5293,7 @@ exposure_time = 12 initial_exposure_time = 45 material_type = Tough material_vendor = Monocure +material_colour = #EC0000 [sla_material:Esun Bio-Photopolymer Resin White @0.05] inherits = *common 0.05* @@ -5201,6 +5301,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:Esun Standard Resin Black @0.05] inherits = *common 0.05* @@ -5208,6 +5309,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #007EFD [sla_material:FunToDo Castable Blend Red @0.05] inherits = *common 0.05* @@ -5215,6 +5317,7 @@ exposure_time = 15 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Industrial Blend Unpigmented @0.05] inherits = *common 0.05* @@ -5222,6 +5325,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #F8F8F8 [sla_material:FunToDo Snow White @0.05] inherits = *common 0.05* @@ -5229,6 +5333,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:3DM-ABS @0.05] inherits = *common 0.05* @@ -5236,6 +5341,7 @@ exposure_time = 13 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-BLACK @0.05] inherits = *common 0.05* @@ -5243,6 +5349,7 @@ exposure_time = 20 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #007EFD [sla_material:3DM-DENT @0.05] inherits = *common 0.05* @@ -5250,6 +5357,7 @@ exposure_time = 7 initial_exposure_time = 45 material_type = Dental material_vendor = 3DM +material_colour = #FFEEE6 [sla_material:3DM-HR Green @0.05] inherits = *common 0.05* @@ -5257,6 +5365,7 @@ exposure_time = 15 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #00B900 [sla_material:3DM-HR Red Wine @0.05] inherits = *common 0.05* @@ -5264,6 +5373,7 @@ exposure_time = 18 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:3DM-XPRO White @0.05] inherits = *common 0.05* @@ -5271,6 +5381,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FFFFFF [sla_material:3DM-Vulcan Gold @0.05] inherits = *common 0.05* @@ -5278,6 +5389,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.05] inherits = *common 0.05* @@ -5285,6 +5397,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:FunToDo Ash Grey @0.05] inherits = *common 0.05* @@ -5292,6 +5405,7 @@ exposure_time = 9 initial_exposure_time = 40 material_type = Tough material_vendor = FunToDo +material_colour = #808080 [sla_material:Harz Labs Model Resin Cherry @0.05] inherits = *common 0.05* @@ -5299,6 +5413,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Basic Resin Red @0.05] inherits = *common 0.05* @@ -5306,6 +5421,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.05] inherits = *common 0.05* @@ -5313,6 +5429,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #007EFD [sla_material:Harz Labs Dental Cast Red @0.05] inherits = *common 0.05* @@ -5320,6 +5437,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Resinworks 3D Violet @0.05] inherits = *common 0.05* @@ -5327,6 +5445,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.05] inherits = *common 0.05* @@ -5334,6 +5453,7 @@ exposure_time = 21 initial_exposure_time = 35 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Photocentric Hard Grey @0.05] inherits = *common 0.05* @@ -5341,6 +5461,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #808080 [sla_material:Photocentric Ash Grey @0.05] inherits = *common 0.05* @@ -5348,6 +5469,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Siraya Tech Simple Clear @0.05] inherits = *common 0.05* @@ -5355,6 +5477,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.05] inherits = *common 0.05* @@ -5362,6 +5485,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.05] inherits = *common 0.05* @@ -5369,6 +5493,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.05] inherits = *common 0.05* @@ -5376,6 +5501,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.05] inherits = *common 0.05* @@ -5383,6 +5509,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.05] inherits = *common 0.05* @@ -5390,6 +5517,7 @@ exposure_time = 12 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.05] inherits = *common 0.05* @@ -5397,6 +5525,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.05] inherits = *common 0.05* @@ -5404,6 +5533,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:NextDent Model 2.0 Grey @0.05] inherits = *common 0.05* @@ -5411,6 +5541,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #C0C0C0 [sla_material:NextDent Surgical Guide @0.05] inherits = *common 0.05* @@ -5418,6 +5549,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFEEE6 [sla_material:NextDent Cast Purple @0.05] inherits = *common 0.05* @@ -5425,6 +5557,7 @@ exposure_time = 9 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:NextDent Crown Bridge @0.05] inherits = *common 0.05* @@ -5432,6 +5565,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFFFFF [sla_material:MakerJuice Labs Standard Red @0.05] inherits = *common 0.05* @@ -5439,6 +5573,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.05] inherits = *common 0.05* @@ -5446,6 +5581,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.05] inherits = *common 0.05* @@ -5453,6 +5589,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Dragon Resin Metalshine Metal Grey @0.05] inherits = *common 0.05* @@ -5460,6 +5597,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #808080 [sla_material:Dragon Resin Metalshine Dark Brass @0.05] inherits = *common 0.05* @@ -5467,6 +5605,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Dragon Resin Metalshine Brass @0.05] inherits = *common 0.05* @@ -5474,6 +5613,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Zortrax Black @0.05] inherits = *common 0.05* @@ -5481,6 +5621,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #007EFD ## Prusa Polymers 0.05 @@ -5490,6 +5631,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05] inherits = *common 0.05* @@ -5497,6 +5639,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.05] inherits = *common 0.05* @@ -5504,6 +5647,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #C0C0C0 ## Prusa 0.05 @@ -5513,6 +5657,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Orange Tough @0.05] inherits = *common 0.05* @@ -5520,6 +5665,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Grey Tough @0.05] inherits = *common 0.05* @@ -5527,6 +5673,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Black Tough @0.05] inherits = *common 0.05* @@ -5534,6 +5681,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Super Low Odor Beige Tough @0.05] ## inherits = *common 0.05* @@ -5562,6 +5710,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Super Low Odor Magenta Tough @0.05] inherits = *common 0.05* @@ -5569,6 +5718,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.05] inherits = *common 0.05* @@ -5576,6 +5726,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F ## [sla_material:Prusa Black High Tenacity @0.05] ## inherits = *common 0.05* @@ -5590,6 +5741,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Green Dental Casting @0.05] inherits = *common 0.05* @@ -5597,6 +5749,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 ## [sla_material:Prusa Yellow Solid @0.05] ## inherits = *common 0.05* @@ -5609,6 +5762,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Green Tough @0.05] inherits = *common 0.05* @@ -5616,6 +5770,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Red Tough @0.05] inherits = *common 0.05* @@ -5623,6 +5778,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #EC0000 [sla_material:Prusa Maroon Tough @0.05] inherits = *common 0.05* @@ -5630,6 +5786,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Pink Tough @0.05] inherits = *common 0.05* @@ -5637,6 +5794,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.05] inherits = *common 0.05* @@ -5644,6 +5802,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.05] ## inherits = *common 0.05* @@ -5658,6 +5817,7 @@ exposure_time = 7 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa Yellow Flexible @0.05] ## inherits = *common 0.05* @@ -5670,6 +5830,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa White Flexible @0.05] ## inherits = *common 0.05* @@ -5682,6 +5843,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Black Flexible @0.05] ## inherits = *common 0.05* @@ -5699,6 +5861,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.05] inherits = *common 0.05* @@ -5706,6 +5869,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Yellow Jewelry Casting @0.05] inherits = *common 0.05* @@ -5713,6 +5877,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Grey High Tenacity @0.05] inherits = *common 0.05* @@ -5720,6 +5885,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05] inherits = *common 0.05* @@ -5727,6 +5893,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.05] inherits = *common 0.05* @@ -5734,6 +5901,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Deep Blue Transparent Tough @0.05] inherits = *common 0.05* @@ -5741,6 +5909,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ########### Materials 0.035 @@ -5750,6 +5919,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ########### Materials 0.1 @@ -5759,6 +5929,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast Kera Master Dental @0.1] inherits = *common 0.1* @@ -5766,6 +5937,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #FFEEE6 ## Prusa Polymers 0.1 @@ -5775,6 +5947,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1] inherits = *common 0.1* @@ -5782,6 +5955,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.1] inherits = *common 0.1* @@ -5789,6 +5963,7 @@ exposure_time = 14 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.1 @@ -5798,6 +5973,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Beige Tough @0.1] inherits = *common 0.1* @@ -5805,6 +5981,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.1] inherits = *common 0.1* @@ -5812,6 +5989,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.1] inherits = *common 0.1* @@ -5819,6 +5997,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Maroon Tough @0.1] inherits = *common 0.1* @@ -5826,6 +6005,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1] inherits = *common 0.1* @@ -5833,6 +6013,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Black Tough @0.1] inherits = *common 0.1* @@ -5840,6 +6021,7 @@ exposure_time = 13 initial_exposure_time = 55 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Transparent Tough @0.1] inherits = *common 0.1* @@ -5847,6 +6029,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.1] inherits = *common 0.1* @@ -5854,6 +6037,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.1] inherits = *common 0.1* @@ -5861,6 +6045,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Vibrant Orange Tough @0.1] inherits = *common 0.1* @@ -5868,6 +6053,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ## SL1S materials ## @@ -5881,6 +6067,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025 SL1S] inherits = *0.025_sl1s* @@ -5888,6 +6075,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -5895,6 +6083,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.025 @@ -5904,6 +6093,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.025 SL1S] inherits = *0.025_sl1s* @@ -5911,6 +6101,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5918,6 +6109,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5925,6 +6117,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Cyan Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5932,6 +6125,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5939,6 +6133,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5946,6 +6141,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5953,6 +6149,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5960,6 +6157,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Grey Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5967,6 +6165,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Blue Flexible @0.025 SL1S] inherits = *0.025_sl1s* @@ -5974,6 +6173,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.025 SL1S] inherits = *0.025_sl1s* @@ -5981,6 +6181,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5988,6 +6189,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5995,6 +6197,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.025 SL1S] inherits = *0.025_sl1s* @@ -6002,6 +6205,7 @@ exposure_time = 3 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -6009,6 +6213,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6016,6 +6221,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6023,6 +6229,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6030,6 +6237,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.025 SL1S] inherits = *0.025_sl1s* @@ -6037,6 +6245,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.025 SL1S] inherits = *0.025_sl1s* @@ -6044,6 +6253,7 @@ exposure_time = 1.2 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6051,6 +6261,7 @@ exposure_time = 1.6 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6058,6 +6269,7 @@ exposure_time = 1.8 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.025 SL1S] inherits = *0.025_sl1s* @@ -6065,6 +6277,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6072,6 +6285,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6079,6 +6293,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6086,6 +6301,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.05 SL1S @@ -6097,6 +6313,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05 SL1S] inherits = *0.05_sl1s* @@ -6104,6 +6321,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6111,6 +6329,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.05 @@ -6120,6 +6339,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.05 SL1S] inherits = *0.05_sl1s* @@ -6127,6 +6347,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6134,6 +6355,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6141,6 +6363,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Cyan Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6148,6 +6371,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6155,6 +6379,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6162,6 +6387,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6169,6 +6395,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6176,6 +6403,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.05 SL1S] inherits = *0.05_sl1s* @@ -6183,6 +6411,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6190,6 +6419,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Grey High Tenacity @0.05 SL1S] inherits = *0.05_sl1s* @@ -6197,6 +6427,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6204,6 +6435,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6211,6 +6443,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.05 SL1S] inherits = *0.05_sl1s* @@ -6218,6 +6451,7 @@ exposure_time = 4 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6225,6 +6459,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6232,6 +6467,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6239,6 +6475,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6246,6 +6483,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.05 SL1S] inherits = *0.05_sl1s* @@ -6253,6 +6491,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.05 SL1S] inherits = *0.05_sl1s* @@ -6260,6 +6499,7 @@ exposure_time = 1.4 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6267,6 +6507,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6274,6 +6515,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.05 SL1S] inherits = *0.05_sl1s* @@ -6281,6 +6523,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6288,6 +6531,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6295,6 +6539,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6302,6 +6547,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.1 SL1S @@ -6313,6 +6559,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1 SL1S] inherits = *0.1_sl1s* @@ -6320,6 +6567,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #007EFD [sla_material:Prusament Resin Tough Anthracite Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6327,6 +6575,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.1 @@ -6336,6 +6585,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.1 SL1S] inherits = *0.1_sl1s* @@ -6343,6 +6593,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6350,6 +6601,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6357,6 +6609,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Cyan Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6364,6 +6617,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6371,6 +6625,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6378,6 +6633,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6385,6 +6641,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6392,6 +6649,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.1 SL1S] inherits = *0.1_sl1s* @@ -6399,6 +6657,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Grey Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6406,6 +6665,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.1 SL1S] inherits = *0.1_sl1s* @@ -6413,6 +6673,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Vibrant Orange Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6420,6 +6681,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6427,6 +6689,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.1 SL1S] inherits = *0.1_sl1s* @@ -6434,6 +6697,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6441,6 +6705,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6448,6 +6713,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6455,6 +6721,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6462,6 +6729,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.1 SL1S] inherits = *0.1_sl1s* @@ -6469,6 +6737,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.1 SL1S] inherits = *0.1_sl1s* @@ -6476,6 +6745,7 @@ exposure_time = 2.6 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:3DM-ABS Orange @0.1 SL1S] inherits = *0.1_sl1s* @@ -6483,6 +6753,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6490,6 +6761,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6497,6 +6769,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6504,6 +6777,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 [printer:*common*] printer_technology = FFF From ee8a9d8d508b9baf9cde16d2dab9618c7134aefa Mon Sep 17 00:00:00 2001 From: Justin Schuh Date: Tue, 9 Nov 2021 05:44:28 -0800 Subject: [PATCH 091/130] build_win.bat: Updates to better handle deps changes (#7268) * build_win.bat: Fix run bug for deps only build * build_win.bat: Purge destir before a clean deps build --- build_win.bat | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build_win.bat b/build_win.bat index c03ebf0399..a5af27609e 100644 --- a/build_win.bat +++ b/build_win.bat @@ -160,7 +160,10 @@ REM Build deps :BUILD_DEPS SET EXIT_STATUS=3 SET PS_CURRENT_STEP=deps -IF "%PS_STEPS_DIRTY%" EQU "" CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs +IF "%PS_STEPS_DIRTY%" EQU "" ( + CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs + CALL :MAKE_OR_CLEAN_DIRECTORY "%PS_DESTDIR%" +) cd deps\build || GOTO :END cmake.exe .. -DDESTDIR="%PS_DESTDIR%" IF %ERRORLEVEL% NEQ 0 IF "%PS_STEPS_DIRTY%" NEQ "" ( @@ -203,8 +206,8 @@ IF "%PS_CURRENT_STEP%" NEQ "arguments" ( ) SET EXIT_STATUS=5 SET PS_CURRENT_STEP=run -cd src\%PS_CONFIG% || GOTO :END IF "%PS_RUN%" EQU "none" GOTO :PROLOGUE +cd src\%PS_CONFIG% || GOTO :END SET PS_PROJECT_IS_OPEN= FOR /F "tokens=2 delims=," %%I in ( 'tasklist /V /FI "IMAGENAME eq devenv.exe " /NH /FO CSV ^| find "%PS_SOLUTION_NAME%"' From e8be7b2ecd3a21676af73805f96157f37418f8e5 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 9 Nov 2021 17:00:57 +0100 Subject: [PATCH 092/130] Implemented possibility to show resin colors from the Plater (Bottles with resin are colored now in preset combobox) + Added nsvgParseFromFileWithReplace() to replace some colors before parsing from SVG file + Thumbnails are saved with selected resin color in SL1 or SL1S files + "white" folder is deleted from "icons" now. THere is no needed anymore. --- resources/icons/editor_menu.svg | 6 +- resources/icons/preview_menu.svg | 32 +++---- resources/icons/white/add_copies.svg | 19 ---- resources/icons/white/add_modifier.svg | 13 --- resources/icons/white/add_negative.svg | 15 --- resources/icons/white/add_part.svg | 19 ---- resources/icons/white/advanced+wrench.svg | 43 --------- resources/icons/white/advanced_plus.svg | 24 ----- resources/icons/white/cog.svg | 17 ---- resources/icons/white/colorchange_add_m.svg | 20 ---- resources/icons/white/compare.svg | 30 ------ resources/icons/white/cooling.svg | 25 ----- resources/icons/white/copy_menu.svg | 37 -------- resources/icons/white/delete.svg | 22 ----- resources/icons/white/delete_all_menu.svg | 31 ------ resources/icons/white/dot.svg | 8 -- resources/icons/white/dot_small.svg | 8 -- resources/icons/white/drop_to_bed.svg | 15 --- resources/icons/white/edit_gcode.svg | 15 --- resources/icons/white/edit_layers_all.svg | 25 ----- resources/icons/white/edit_layers_some.svg | 14 --- resources/icons/white/edit_uni.svg | 20 ---- resources/icons/white/editor_menu.svg | 20 ---- resources/icons/white/equal.svg | 15 --- resources/icons/white/error_tick.svg | 12 --- .../icons/white/exclamation_manifold.svg | 17 ---- resources/icons/white/exit.svg | 13 --- resources/icons/white/export_config.svg | 20 ---- .../icons/white/export_config_bundle.svg | 50 ---------- resources/icons/white/export_gcode.svg | 14 --- resources/icons/white/export_plate.svg | 15 --- resources/icons/white/export_plater.svg | 12 --- resources/icons/white/export_to_sd.svg | 22 ----- resources/icons/white/extruder+funnel.svg | 15 --- resources/icons/white/eye_closed.svg | 13 --- resources/icons/white/eye_open.svg | 11 --- resources/icons/white/flag_green.svg | 10 -- resources/icons/white/flag_red.svg | 10 -- resources/icons/white/funnel.svg | 15 --- resources/icons/white/hollowing.svg | 51 ---------- resources/icons/white/import_config.svg | 25 ----- .../icons/white/import_config_bundle.svg | 61 ------------ resources/icons/white/import_plate.svg | 38 -------- resources/icons/white/import_plater.svg | 17 ---- resources/icons/white/infill.svg | 35 ------- resources/icons/white/info.svg | 71 -------------- resources/icons/white/layers.svg | 27 ------ resources/icons/white/lock2_closed.svg | 10 -- resources/icons/white/lock_closed.svg | 10 -- resources/icons/white/lock_closed_f.svg | 10 -- resources/icons/white/lock_open_sys.svg | 11 --- resources/icons/white/machine+cog.svg | 30 ------ resources/icons/white/mirroring_off.svg | 23 ----- resources/icons/white/mirroring_on.svg | 23 ----- resources/icons/white/note.svg | 25 ----- resources/icons/white/notes.svg | 25 ----- resources/icons/white/number_of_copies.svg | 29 ------ resources/icons/white/open.svg | 11 --- resources/icons/white/output+page_white.svg | 20 ---- resources/icons/white/pad.svg | 83 ---------------- resources/icons/white/paste_menu.svg | 27 ------ resources/icons/white/pause_print.svg | 18 ---- resources/icons/white/plater.svg | 12 --- resources/icons/white/preview_menu.svg | 48 ---------- resources/icons/white/printer.svg | 14 --- resources/icons/white/re_slice.svg | 19 ---- resources/icons/white/redo_menu.svg | 13 --- resources/icons/white/remove_copies.svg | 15 --- resources/icons/white/remove_menu.svg | 44 --------- resources/icons/white/resin.svg | 10 -- resources/icons/white/save.svg | 25 ----- resources/icons/white/search.svg | 4 - resources/icons/white/set_separate_obj.svg | 29 ------ resources/icons/white/skirt+brim.svg | 15 --- resources/icons/white/sla_printer.svg | 14 --- resources/icons/white/split_object_SMALL.svg | 19 ---- resources/icons/white/split_parts_SMALL.svg | 18 ---- resources/icons/white/spool.svg | 21 ----- resources/icons/white/support.svg | 94 ------------------- resources/icons/white/support_blocker.svg | 48 ---------- resources/icons/white/support_enforcer.svg | 19 ---- resources/icons/white/switch_presets.svg | 52 ---------- resources/icons/white/test.svg | 37 -------- resources/icons/white/time.svg | 16 ---- resources/icons/white/undo_menu.svg | 13 --- resources/icons/white/upload_queue.svg | 29 ------ resources/icons/white/wrench.svg | 20 ---- src/libslic3r/PrintConfig.cpp | 4 +- src/nanosvg/nanosvg.h | 24 ++++- src/slic3r/GUI/3DScene.cpp | 12 +-- src/slic3r/GUI/BitmapCache.cpp | 51 +++------- src/slic3r/GUI/BitmapCache.hpp | 2 +- src/slic3r/GUI/Field.cpp | 2 +- src/slic3r/GUI/GLCanvas3D.cpp | 2 +- src/slic3r/GUI/ImGuiWrapper.cpp | 10 +- src/slic3r/GUI/Plater.cpp | 6 -- src/slic3r/GUI/PresetComboBoxes.cpp | 14 ++- src/slic3r/GUI/PresetComboBoxes.hpp | 2 +- src/slic3r/GUI/wxExtensions.cpp | 32 ++++++- src/slic3r/GUI/wxExtensions.hpp | 4 +- 100 files changed, 109 insertions(+), 2126 deletions(-) delete mode 100644 resources/icons/white/add_copies.svg delete mode 100644 resources/icons/white/add_modifier.svg delete mode 100644 resources/icons/white/add_negative.svg delete mode 100644 resources/icons/white/add_part.svg delete mode 100644 resources/icons/white/advanced+wrench.svg delete mode 100644 resources/icons/white/advanced_plus.svg delete mode 100644 resources/icons/white/cog.svg delete mode 100644 resources/icons/white/colorchange_add_m.svg delete mode 100644 resources/icons/white/compare.svg delete mode 100644 resources/icons/white/cooling.svg delete mode 100644 resources/icons/white/copy_menu.svg delete mode 100644 resources/icons/white/delete.svg delete mode 100644 resources/icons/white/delete_all_menu.svg delete mode 100644 resources/icons/white/dot.svg delete mode 100644 resources/icons/white/dot_small.svg delete mode 100644 resources/icons/white/drop_to_bed.svg delete mode 100644 resources/icons/white/edit_gcode.svg delete mode 100644 resources/icons/white/edit_layers_all.svg delete mode 100644 resources/icons/white/edit_layers_some.svg delete mode 100644 resources/icons/white/edit_uni.svg delete mode 100644 resources/icons/white/editor_menu.svg delete mode 100644 resources/icons/white/equal.svg delete mode 100644 resources/icons/white/error_tick.svg delete mode 100644 resources/icons/white/exclamation_manifold.svg delete mode 100644 resources/icons/white/exit.svg delete mode 100644 resources/icons/white/export_config.svg delete mode 100644 resources/icons/white/export_config_bundle.svg delete mode 100644 resources/icons/white/export_gcode.svg delete mode 100644 resources/icons/white/export_plate.svg delete mode 100644 resources/icons/white/export_plater.svg delete mode 100644 resources/icons/white/export_to_sd.svg delete mode 100644 resources/icons/white/extruder+funnel.svg delete mode 100644 resources/icons/white/eye_closed.svg delete mode 100644 resources/icons/white/eye_open.svg delete mode 100644 resources/icons/white/flag_green.svg delete mode 100644 resources/icons/white/flag_red.svg delete mode 100644 resources/icons/white/funnel.svg delete mode 100644 resources/icons/white/hollowing.svg delete mode 100644 resources/icons/white/import_config.svg delete mode 100644 resources/icons/white/import_config_bundle.svg delete mode 100644 resources/icons/white/import_plate.svg delete mode 100644 resources/icons/white/import_plater.svg delete mode 100644 resources/icons/white/infill.svg delete mode 100644 resources/icons/white/info.svg delete mode 100644 resources/icons/white/layers.svg delete mode 100644 resources/icons/white/lock2_closed.svg delete mode 100644 resources/icons/white/lock_closed.svg delete mode 100644 resources/icons/white/lock_closed_f.svg delete mode 100644 resources/icons/white/lock_open_sys.svg delete mode 100644 resources/icons/white/machine+cog.svg delete mode 100644 resources/icons/white/mirroring_off.svg delete mode 100644 resources/icons/white/mirroring_on.svg delete mode 100644 resources/icons/white/note.svg delete mode 100644 resources/icons/white/notes.svg delete mode 100644 resources/icons/white/number_of_copies.svg delete mode 100644 resources/icons/white/open.svg delete mode 100644 resources/icons/white/output+page_white.svg delete mode 100644 resources/icons/white/pad.svg delete mode 100644 resources/icons/white/paste_menu.svg delete mode 100644 resources/icons/white/pause_print.svg delete mode 100644 resources/icons/white/plater.svg delete mode 100644 resources/icons/white/preview_menu.svg delete mode 100644 resources/icons/white/printer.svg delete mode 100644 resources/icons/white/re_slice.svg delete mode 100644 resources/icons/white/redo_menu.svg delete mode 100644 resources/icons/white/remove_copies.svg delete mode 100644 resources/icons/white/remove_menu.svg delete mode 100644 resources/icons/white/resin.svg delete mode 100644 resources/icons/white/save.svg delete mode 100644 resources/icons/white/search.svg delete mode 100644 resources/icons/white/set_separate_obj.svg delete mode 100644 resources/icons/white/skirt+brim.svg delete mode 100644 resources/icons/white/sla_printer.svg delete mode 100644 resources/icons/white/split_object_SMALL.svg delete mode 100644 resources/icons/white/split_parts_SMALL.svg delete mode 100644 resources/icons/white/spool.svg delete mode 100644 resources/icons/white/support.svg delete mode 100644 resources/icons/white/support_blocker.svg delete mode 100644 resources/icons/white/support_enforcer.svg delete mode 100644 resources/icons/white/switch_presets.svg delete mode 100644 resources/icons/white/test.svg delete mode 100644 resources/icons/white/time.svg delete mode 100644 resources/icons/white/undo_menu.svg delete mode 100644 resources/icons/white/upload_queue.svg delete mode 100644 resources/icons/white/wrench.svg diff --git a/resources/icons/editor_menu.svg b/resources/icons/editor_menu.svg index 223efda0f5..253bd907db 100644 --- a/resources/icons/editor_menu.svg +++ b/resources/icons/editor_menu.svg @@ -4,15 +4,15 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - + - diff --git a/resources/icons/preview_menu.svg b/resources/icons/preview_menu.svg index 725caf7b8a..9af677d3e3 100644 --- a/resources/icons/preview_menu.svg +++ b/resources/icons/preview_menu.svg @@ -4,40 +4,40 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - - - + - - - - + - - - - + - - - + - - - - - - - - - - - - - - - diff --git a/resources/icons/white/add_modifier.svg b/resources/icons/white/add_modifier.svg deleted file mode 100644 index 09c3ce27dc..0000000000 --- a/resources/icons/white/add_modifier.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/add_negative.svg b/resources/icons/white/add_negative.svg deleted file mode 100644 index 0173d1f0de..0000000000 --- a/resources/icons/white/add_negative.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/add_part.svg b/resources/icons/white/add_part.svg deleted file mode 100644 index f4ee114320..0000000000 --- a/resources/icons/white/add_part.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced+wrench.svg b/resources/icons/white/advanced+wrench.svg deleted file mode 100644 index 5e878cb3cc..0000000000 --- a/resources/icons/white/advanced+wrench.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced_plus.svg b/resources/icons/white/advanced_plus.svg deleted file mode 100644 index db532ec4b1..0000000000 --- a/resources/icons/white/advanced_plus.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/cog.svg b/resources/icons/white/cog.svg deleted file mode 100644 index 773e4d65dd..0000000000 --- a/resources/icons/white/cog.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/colorchange_add_m.svg b/resources/icons/white/colorchange_add_m.svg deleted file mode 100644 index 2266560daa..0000000000 --- a/resources/icons/white/colorchange_add_m.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/compare.svg b/resources/icons/white/compare.svg deleted file mode 100644 index 7eafebfde6..0000000000 --- a/resources/icons/white/compare.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/cooling.svg b/resources/icons/white/cooling.svg deleted file mode 100644 index 29bd04c368..0000000000 --- a/resources/icons/white/cooling.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/copy_menu.svg b/resources/icons/white/copy_menu.svg deleted file mode 100644 index d660aab6a2..0000000000 --- a/resources/icons/white/copy_menu.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete.svg b/resources/icons/white/delete.svg deleted file mode 100644 index 91d5ce74c5..0000000000 --- a/resources/icons/white/delete.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete_all_menu.svg b/resources/icons/white/delete_all_menu.svg deleted file mode 100644 index 5d825c424c..0000000000 --- a/resources/icons/white/delete_all_menu.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/dot.svg b/resources/icons/white/dot.svg deleted file mode 100644 index 90fbaf7fb1..0000000000 --- a/resources/icons/white/dot.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/dot_small.svg b/resources/icons/white/dot_small.svg deleted file mode 100644 index 74df442086..0000000000 --- a/resources/icons/white/dot_small.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/drop_to_bed.svg b/resources/icons/white/drop_to_bed.svg deleted file mode 100644 index 76243f8976..0000000000 --- a/resources/icons/white/drop_to_bed.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/edit_gcode.svg b/resources/icons/white/edit_gcode.svg deleted file mode 100644 index 85836c0b49..0000000000 --- a/resources/icons/white/edit_gcode.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_all.svg b/resources/icons/white/edit_layers_all.svg deleted file mode 100644 index efb7d609f1..0000000000 --- a/resources/icons/white/edit_layers_all.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_some.svg b/resources/icons/white/edit_layers_some.svg deleted file mode 100644 index 585a8df2f1..0000000000 --- a/resources/icons/white/edit_layers_some.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/edit_uni.svg b/resources/icons/white/edit_uni.svg deleted file mode 100644 index 661924763c..0000000000 --- a/resources/icons/white/edit_uni.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/editor_menu.svg b/resources/icons/white/editor_menu.svg deleted file mode 100644 index 649d2c40fa..0000000000 --- a/resources/icons/white/editor_menu.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/equal.svg b/resources/icons/white/equal.svg deleted file mode 100644 index febbb4c5f2..0000000000 --- a/resources/icons/white/equal.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/error_tick.svg b/resources/icons/white/error_tick.svg deleted file mode 100644 index f3de981f03..0000000000 --- a/resources/icons/white/error_tick.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/exclamation_manifold.svg b/resources/icons/white/exclamation_manifold.svg deleted file mode 100644 index a18590167c..0000000000 --- a/resources/icons/white/exclamation_manifold.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/exit.svg b/resources/icons/white/exit.svg deleted file mode 100644 index e5aebcfc22..0000000000 --- a/resources/icons/white/exit.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config.svg b/resources/icons/white/export_config.svg deleted file mode 100644 index 22f8ebe1a6..0000000000 --- a/resources/icons/white/export_config.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config_bundle.svg b/resources/icons/white/export_config_bundle.svg deleted file mode 100644 index 99bd62b6c3..0000000000 --- a/resources/icons/white/export_config_bundle.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/export_gcode.svg b/resources/icons/white/export_gcode.svg deleted file mode 100644 index 39f5225cbe..0000000000 --- a/resources/icons/white/export_gcode.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/export_plate.svg b/resources/icons/white/export_plate.svg deleted file mode 100644 index 18159d2a87..0000000000 --- a/resources/icons/white/export_plate.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/export_plater.svg b/resources/icons/white/export_plater.svg deleted file mode 100644 index e71b38a0aa..0000000000 --- a/resources/icons/white/export_plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_to_sd.svg b/resources/icons/white/export_to_sd.svg deleted file mode 100644 index ebeacb9054..0000000000 --- a/resources/icons/white/export_to_sd.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/extruder+funnel.svg b/resources/icons/white/extruder+funnel.svg deleted file mode 100644 index de6b227da2..0000000000 --- a/resources/icons/white/extruder+funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/eye_closed.svg b/resources/icons/white/eye_closed.svg deleted file mode 100644 index 0cdd16ae00..0000000000 --- a/resources/icons/white/eye_closed.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/eye_open.svg b/resources/icons/white/eye_open.svg deleted file mode 100644 index 1b320da079..0000000000 --- a/resources/icons/white/eye_open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_green.svg b/resources/icons/white/flag_green.svg deleted file mode 100644 index 8479d0e9a9..0000000000 --- a/resources/icons/white/flag_green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_red.svg b/resources/icons/white/flag_red.svg deleted file mode 100644 index a9b1cf8fed..0000000000 --- a/resources/icons/white/flag_red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/funnel.svg b/resources/icons/white/funnel.svg deleted file mode 100644 index b8a3408a78..0000000000 --- a/resources/icons/white/funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/hollowing.svg b/resources/icons/white/hollowing.svg deleted file mode 100644 index 77f50b6b83..0000000000 --- a/resources/icons/white/hollowing.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config.svg b/resources/icons/white/import_config.svg deleted file mode 100644 index 001277f738..0000000000 --- a/resources/icons/white/import_config.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config_bundle.svg b/resources/icons/white/import_config_bundle.svg deleted file mode 100644 index c16cd7b3c6..0000000000 --- a/resources/icons/white/import_config_bundle.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plate.svg b/resources/icons/white/import_plate.svg deleted file mode 100644 index 7f888e3d78..0000000000 --- a/resources/icons/white/import_plate.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plater.svg b/resources/icons/white/import_plater.svg deleted file mode 100644 index 1dc5aae6eb..0000000000 --- a/resources/icons/white/import_plater.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/infill.svg b/resources/icons/white/infill.svg deleted file mode 100644 index 0860430998..0000000000 --- a/resources/icons/white/infill.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/info.svg b/resources/icons/white/info.svg deleted file mode 100644 index db227aa320..0000000000 --- a/resources/icons/white/info.svg +++ /dev/null @@ -1,71 +0,0 @@ - -image/svg+xml - - - - - - - - - - diff --git a/resources/icons/white/layers.svg b/resources/icons/white/layers.svg deleted file mode 100644 index cd71fab3a3..0000000000 --- a/resources/icons/white/layers.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/lock2_closed.svg b/resources/icons/white/lock2_closed.svg deleted file mode 100644 index 726c850a11..0000000000 --- a/resources/icons/white/lock2_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed.svg b/resources/icons/white/lock_closed.svg deleted file mode 100644 index 1665dc9a08..0000000000 --- a/resources/icons/white/lock_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed_f.svg b/resources/icons/white/lock_closed_f.svg deleted file mode 100644 index 412c93c164..0000000000 --- a/resources/icons/white/lock_closed_f.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_open_sys.svg b/resources/icons/white/lock_open_sys.svg deleted file mode 100644 index c1aa64aec2..0000000000 --- a/resources/icons/white/lock_open_sys.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/machine+cog.svg b/resources/icons/white/machine+cog.svg deleted file mode 100644 index ec49265b81..0000000000 --- a/resources/icons/white/machine+cog.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_off.svg b/resources/icons/white/mirroring_off.svg deleted file mode 100644 index 2011d8f1b8..0000000000 --- a/resources/icons/white/mirroring_off.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_on.svg b/resources/icons/white/mirroring_on.svg deleted file mode 100644 index 1773b78add..0000000000 --- a/resources/icons/white/mirroring_on.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/note.svg b/resources/icons/white/note.svg deleted file mode 100644 index 07c2a14cf9..0000000000 --- a/resources/icons/white/note.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/notes.svg b/resources/icons/white/notes.svg deleted file mode 100644 index 25de4191e8..0000000000 --- a/resources/icons/white/notes.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/number_of_copies.svg b/resources/icons/white/number_of_copies.svg deleted file mode 100644 index 7c9d78a801..0000000000 --- a/resources/icons/white/number_of_copies.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/open.svg b/resources/icons/white/open.svg deleted file mode 100644 index 0ea9ecdb2c..0000000000 --- a/resources/icons/white/open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/output+page_white.svg b/resources/icons/white/output+page_white.svg deleted file mode 100644 index 0838740032..0000000000 --- a/resources/icons/white/output+page_white.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/pad.svg b/resources/icons/white/pad.svg deleted file mode 100644 index cddb2da022..0000000000 --- a/resources/icons/white/pad.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/paste_menu.svg b/resources/icons/white/paste_menu.svg deleted file mode 100644 index 465c2faf08..0000000000 --- a/resources/icons/white/paste_menu.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/pause_print.svg b/resources/icons/white/pause_print.svg deleted file mode 100644 index 73f747fffd..0000000000 --- a/resources/icons/white/pause_print.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/plater.svg b/resources/icons/white/plater.svg deleted file mode 100644 index d637a5e7e7..0000000000 --- a/resources/icons/white/plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/preview_menu.svg b/resources/icons/white/preview_menu.svg deleted file mode 100644 index 98095359c9..0000000000 --- a/resources/icons/white/preview_menu.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/printer.svg b/resources/icons/white/printer.svg deleted file mode 100644 index d94f6fd5c4..0000000000 --- a/resources/icons/white/printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/re_slice.svg b/resources/icons/white/re_slice.svg deleted file mode 100644 index b8d7dc7271..0000000000 --- a/resources/icons/white/re_slice.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/redo_menu.svg b/resources/icons/white/redo_menu.svg deleted file mode 100644 index 749f49a421..0000000000 --- a/resources/icons/white/redo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/remove_copies.svg b/resources/icons/white/remove_copies.svg deleted file mode 100644 index 5b277e45e9..0000000000 --- a/resources/icons/white/remove_copies.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/remove_menu.svg b/resources/icons/white/remove_menu.svg deleted file mode 100644 index 59360a33f4..0000000000 --- a/resources/icons/white/remove_menu.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/resin.svg b/resources/icons/white/resin.svg deleted file mode 100644 index 81abfae0ce..0000000000 --- a/resources/icons/white/resin.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/save.svg b/resources/icons/white/save.svg deleted file mode 100644 index 3349a42dd5..0000000000 --- a/resources/icons/white/save.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/search.svg b/resources/icons/white/search.svg deleted file mode 100644 index 679bb30f71..0000000000 --- a/resources/icons/white/search.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/resources/icons/white/set_separate_obj.svg b/resources/icons/white/set_separate_obj.svg deleted file mode 100644 index de083c1c99..0000000000 --- a/resources/icons/white/set_separate_obj.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/skirt+brim.svg b/resources/icons/white/skirt+brim.svg deleted file mode 100644 index 684e177d25..0000000000 --- a/resources/icons/white/skirt+brim.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/resources/icons/white/sla_printer.svg b/resources/icons/white/sla_printer.svg deleted file mode 100644 index 3d47e7da62..0000000000 --- a/resources/icons/white/sla_printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/split_object_SMALL.svg b/resources/icons/white/split_object_SMALL.svg deleted file mode 100644 index 4795cab512..0000000000 --- a/resources/icons/white/split_object_SMALL.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/split_parts_SMALL.svg b/resources/icons/white/split_parts_SMALL.svg deleted file mode 100644 index eba846c17f..0000000000 --- a/resources/icons/white/split_parts_SMALL.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/spool.svg b/resources/icons/white/spool.svg deleted file mode 100644 index 7c9fbab977..0000000000 --- a/resources/icons/white/spool.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support.svg b/resources/icons/white/support.svg deleted file mode 100644 index 52b7c6b40e..0000000000 --- a/resources/icons/white/support.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_blocker.svg b/resources/icons/white/support_blocker.svg deleted file mode 100644 index 17401e2ab2..0000000000 --- a/resources/icons/white/support_blocker.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_enforcer.svg b/resources/icons/white/support_enforcer.svg deleted file mode 100644 index 0de2dc6a79..0000000000 --- a/resources/icons/white/support_enforcer.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/switch_presets.svg b/resources/icons/white/switch_presets.svg deleted file mode 100644 index efcc3670cc..0000000000 --- a/resources/icons/white/switch_presets.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/test.svg b/resources/icons/white/test.svg deleted file mode 100644 index 639bbbde8e..0000000000 --- a/resources/icons/white/test.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/time.svg b/resources/icons/white/time.svg deleted file mode 100644 index d014286b5a..0000000000 --- a/resources/icons/white/time.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/undo_menu.svg b/resources/icons/white/undo_menu.svg deleted file mode 100644 index 4e2b69a601..0000000000 --- a/resources/icons/white/undo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/upload_queue.svg b/resources/icons/white/upload_queue.svg deleted file mode 100644 index 710e2be89d..0000000000 --- a/resources/icons/white/upload_queue.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/wrench.svg b/resources/icons/white/wrench.svg deleted file mode 100644 index 714c5a82af..0000000000 --- a/resources/icons/white/wrench.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index e165c731ff..39c033df61 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -3164,11 +3164,11 @@ void PrintConfigDef::init_sla_params() // SLA Material settings. - def = this->add("material_colour", coStrings); + def = this->add("material_colour", coString); def->label = L("Color"); def->tooltip = L("This is only used in the Slic3r interface as a visual help."); def->gui_type = ConfigOptionDef::GUIType::color; - def->set_default_value(new ConfigOptionStrings{ "#29B2B2" }); + def->set_default_value(new ConfigOptionString("#29B2B2")); def = this->add("material_type", coString); def->label = L("SLA material type"); diff --git a/src/nanosvg/nanosvg.h b/src/nanosvg/nanosvg.h index b9063213e0..4eaff9dadc 100644 --- a/src/nanosvg/nanosvg.h +++ b/src/nanosvg/nanosvg.h @@ -165,6 +165,11 @@ typedef struct NSVGimage // Parses SVG file from a file, returns SVG image as paths. NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi); +// Parses SVG file from a file, returns SVG image as paths. +// And makes replases befor parsing +// replace_map containes old_value->new_value +NSVGimage* nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replace_map); + // Parses SVG file from a null terminated string, returns SVG image as paths. // Important note: changes the string. NSVGimage* nsvgParse(char* input, const char* units, float dpi); @@ -189,6 +194,8 @@ void nsvgDelete(NSVGimage* image); #include #include +#include + #define NSVG_PI (3.14159265358979323846264338327f) #define NSVG_KAPPA90 (0.5522847493f) // Length proportional to radius of a cubic bezier handle for 90deg arcs. @@ -2901,6 +2908,12 @@ NSVGimage* nsvgParse(char* input, const char* units, float dpi) NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) { + return nsvgParseFromFileWithReplace(filename, units, dpi, { {} }); +} + +NSVGimage* nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replaces) +{ + std::string str; FILE* fp = NULL; size_t size; char* data = NULL; @@ -2916,9 +2929,16 @@ NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) if (fread(data, 1, size, fp) != size) goto error; data[size] = '\0'; // Must be null terminated. fclose(fp); - image = nsvgParse(data, units, dpi); - free(data); + if(replaces.empty()) + image = nsvgParse(data, units, dpi); + else { + str.assign(data); + for (auto val : replaces) + boost::replace_all(str, val.first, val.second); + image = nsvgParse(str.data(), units, dpi); + } + free(data); return image; error: diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 6e7174baff..6bceaec097 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1136,15 +1136,11 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig* con if (static_cast(config->opt_int("printer_technology")) == ptSLA) { - const ConfigOptionStrings* resin_clr = dynamic_cast(config->option("material_colour")); - if (resin_clr == nullptr) - return; - assert(resin_clr->values.size() == 1); - colors.resize(1); - - const std::string& txt_color = config->opt_string("material_colour", 0); - if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) + const std::string& txt_color = config->opt_string("material_colour"); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) { + colors.resize(1); colors[0].set(txt_color, rgb); + } } else { diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 2c756c3b95..749fc5ef28 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -261,51 +261,28 @@ wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned width, } wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_width, unsigned target_height, - const bool grayscale/* = false*/, const bool dark_mode/* = false*/) + const bool grayscale/* = false*/, const bool dark_mode/* = false*/, const std::string& new_color /*= ""*/) { std::string bitmap_key = bitmap_name + ( target_height !=0 ? "-h" + std::to_string(target_height) : "-w" + std::to_string(target_width)) + (m_scale != 1.0f ? "-s" + float_to_string_decimal_point(m_scale) : "") - + (grayscale ? "-gs" : ""); + + (dark_mode ? "-dm" : "") + + (grayscale ? "-gs" : "") + + new_color; - /* For the Dark mode of any platform, we should draw icons in respect to OS background - * Note: All standard(regular) icons are collected in "icons" folder, - * SVG-icons, which have "Dark mode" variant, are collected in "icons/white" folder - */ - std::string folder; + auto it = m_map.find(bitmap_key); + if (it != m_map.end()) + return it->second; + + // map of color replaces + std::map replaces; if (dark_mode) - { -#ifdef __WXMSW__ - folder = "white\\"; -#else - folder = "white/"; -#endif - auto it = m_map.find(folder + bitmap_key); - if (it != m_map.end()) - return it->second; - // It's expensive to check if the bitmap exists every time, but otherwise: - // For the case, when application was started in Light mode and then switched to the Dark, - // we will never get a white bitmaps, if check m_map.find(bitmap_key) - // before boost::filesystem::exists(var(folder + bitmap_name + ".svg")) - if (!boost::filesystem::exists(var(folder + bitmap_name + ".svg"))) { - folder.clear(); - - it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } + replaces["#808080"] = "#FFFFFF"; + if (!new_color.empty()) + replaces["#ED6B21"] = new_color; - bitmap_key = folder + bitmap_key; - } - else - { - auto it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } - - NSVGimage *image = ::nsvgParseFromFile(Slic3r::var(folder + bitmap_name + ".svg").c_str(), "px", 96.0f); + NSVGimage *image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) return nullptr; diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index 8147de9963..5fa8643b5a 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -33,7 +33,7 @@ public: // Load png from resources/icons. bitmap_key is given without the .png suffix. Bitmap will be rescaled to provided height/width if nonzero. wxBitmap* load_png(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false); // Load svg from resources/icons. bitmap_key is given without the .svg suffix. SVG will be rasterized to provided height/width. - wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false); + wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false, const std::string& new_color = ""); wxBitmap mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency, bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false); wxBitmap mksolid(size_t width, size_t height, const unsigned char rgb[3], bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false) { return mksolid(width, height, rgb[0], rgb[1], rgb[2], wxALPHA_OPAQUE, suppress_scaling, border_width, dark_mode); } diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 52a03eabf2..0a5635630a 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -1320,7 +1320,7 @@ void ColourPicker::BUILD() if (m_opt.width >= 0) size.SetWidth(m_opt.width*m_em_unit); // Validate the color - wxString clr_str(m_opt.get_default_value()->get_at(m_opt_idx)); + wxString clr_str(m_opt.type == coString ? m_opt.get_default_value()->value : m_opt.get_default_value()->get_at(m_opt_idx)); wxColour clr(clr_str); if (clr_str.IsEmpty() || !clr.IsOk()) { clr = wxTransparentColour; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 1c8a362c01..90e67cd8ac 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -4197,7 +4197,7 @@ void GLCanvas3D::_render_thumbnail_internal(ThumbnailData& thumbnail_data, const shader->set_uniform("emission_factor", 0.0f); for (GLVolume* vol : visible_volumes) { - shader->set_uniform("uniform_color", (vol->printable && !vol->is_outside) ? orange : gray); + shader->set_uniform("uniform_color", (vol->printable && !vol->is_outside) ? (current_printer_technology() == ptSLA ? vol->color : orange) : gray); // the volume may have been deactivated by an active gizmo bool is_active = vol->is_active; vol->is_active = true; diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 32fe71f678..08e53b829e 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -1017,15 +1017,7 @@ std::vector ImGuiWrapper::load_svg(const std::string& bitmap_name { std::vector empty_vector; -#ifdef __WXMSW__ - std::string folder = "white\\"; -#else - std::string folder = "white/"; -#endif - if (!boost::filesystem::exists(Slic3r::var(folder + bitmap_name + ".svg"))) - folder.clear(); - - NSVGimage* image = ::nsvgParseFromFile(Slic3r::var(folder + bitmap_name + ".svg").c_str(), "px", 96.0f); + NSVGimage* image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, { { "#808080", "#FFFFFF" } }); if (image == nullptr) return empty_vector; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index fe8c72fea6..ca4e3e0577 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6221,14 +6221,8 @@ void Plater::on_config_change(const DynamicPrintConfig &config) continue; } } - if (opt_key == "material_colour") { update_scheduled = true; // update should be scheduled (for update 3DScene) - - // update material color in full config - std::vector material_colors = { config.opt_string("material_colour", (unsigned)0) }; - p->config->option("material_colour")->values = material_colors; - continue; } p->config->set_key_value(opt_key, config.option(opt_key)->clone()); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 5da3594582..acae695d2e 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -419,7 +419,7 @@ wxString PresetComboBox::separator(const std::string& label) wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, const std::string& main_icon_name, bool is_compatible/* = true*/, bool is_system/* = false*/, bool is_single_bar/* = false*/, - std::string filament_rgb/* = ""*/, std::string extruder_rgb/* = ""*/) + const std::string& filament_rgb/* = ""*/, const std::string& extruder_rgb/* = ""*/, const std::string& material_rgb/* = ""*/) { // If the filament preset is not compatible and there is a "red flag" icon loaded, show it left // to the filament color image. @@ -431,6 +431,7 @@ wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, con bool dark_mode = wxGetApp().dark_mode(); if (dark_mode) bitmap_key += ",dark"; + bitmap_key += material_rgb; wxBitmap* bmp = bitmap_cache().find(bitmap_key); if (bmp == nullptr) { @@ -457,7 +458,10 @@ wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, con { // Paint the color bars. bmps.emplace_back(bitmap_cache().mkclear(thin_space_icon_width, icon_height)); - bmps.emplace_back(create_scaled_bitmap(main_icon_name)); + if (m_type == Preset::TYPE_SLA_MATERIAL) + bmps.emplace_back(create_scaled_bitmap(main_icon_name, this, 16, false, material_rgb)); + else + bmps.emplace_back(create_scaled_bitmap(main_icon_name)); // Paint a lock at the system presets. bmps.emplace_back(bitmap_cache().mkclear(wide_space_icon_width, icon_height)); } @@ -789,7 +793,7 @@ void PlaterPresetComboBox::update() if (!preset.is_visible || (!preset.is_compatible && !is_selected)) continue; - std::string bitmap_key, filament_rgb, extruder_rgb; + std::string bitmap_key, filament_rgb, extruder_rgb, material_rgb; std::string bitmap_type_name = bitmap_key = m_type == Preset::TYPE_PRINTER && preset.printer_technology() == ptSLA ? "sla_printer" : m_main_bitmap_name; bool single_bar = false; @@ -803,10 +807,12 @@ void PlaterPresetComboBox::update() bitmap_key += single_bar ? filament_rgb : filament_rgb + extruder_rgb; } + else if (m_type == Preset::TYPE_SLA_MATERIAL) + material_rgb = is_selected ? m_preset_bundle->sla_materials.get_edited_preset().config.opt_string("material_colour") : preset.config.opt_string("material_colour"); wxBitmap* bmp = get_bmp(bitmap_key, wide_icons, bitmap_type_name, preset.is_compatible, preset.is_system || preset.is_default, - single_bar, filament_rgb, extruder_rgb); + single_bar, filament_rgb, extruder_rgb, material_rgb); assert(bmp); const std::string name = preset.alias.empty() ? preset.name : preset.alias; diff --git a/src/slic3r/GUI/PresetComboBoxes.hpp b/src/slic3r/GUI/PresetComboBoxes.hpp index f6a6eb3e83..654f836c54 100644 --- a/src/slic3r/GUI/PresetComboBoxes.hpp +++ b/src/slic3r/GUI/PresetComboBoxes.hpp @@ -122,7 +122,7 @@ protected: wxBitmap* get_bmp( std::string bitmap_key, bool wide_icons, const std::string& main_icon_name, bool is_compatible = true, bool is_system = false, bool is_single_bar = false, - std::string filament_rgb = "", std::string extruder_rgb = ""); + const std::string& filament_rgb = "", const std::string& extruder_rgb = "", const std::string& material_rgb = ""); wxBitmap* get_bmp( std::string bitmap_key, const std::string& main_icon_name, const std::string& next_icon_name, bool is_enabled = true, bool is_compatible = true, bool is_system = false); diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 5e703a37b5..8aead7a7ca 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -419,7 +419,7 @@ int mode_icon_px_size() wxBitmap create_menu_bitmap(const std::string& bmp_name) { - return create_scaled_bitmap(bmp_name, nullptr, 16, false, true); + return create_scaled_bitmap(bmp_name, nullptr, 16, false, "", true); } // win is used to get a correct em_unit value @@ -429,6 +429,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, wxWindow *win/* = nullptr*/, const int px_cnt/* = 16*/, const bool grayscale/* = false*/, + const std::string& new_color/* = std::string()*/, // color witch will used instead of orange const bool menu_bitmap/* = false*/) { static Slic3r::GUI::BitmapCache cache; @@ -446,7 +447,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, Slic3r::GUI::wxGetApp().dark_mode(); // Try loading an SVG first, then PNG if SVG is not found: - wxBitmap *bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode); + wxBitmap *bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode, new_color); if (bmp == nullptr) { bmp = cache.load_png(bmp_name, width, height, grayscale); } @@ -459,6 +460,33 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, return *bmp; } +wxBitmap create_scaled_bitmap(const std::string& bmp_name_in, + const std::string& new_color, // color witch will used instead of orange + wxWindow* win, + const int px_cnt/* = 16*/, + const bool grayscale/* = false*/) +{ + static Slic3r::GUI::BitmapCache cache; + + unsigned int width = 0; + unsigned int height = (unsigned int)(em_unit(win) * px_cnt * 0.1f + 0.5f); + + std::string bmp_name = bmp_name_in; + auto it = boost::find_last(bmp_name, ".png"); + assert(it == bmp_name.end()); // this function works just with SVGs + + bool dark_mode = Slic3r::GUI::wxGetApp().dark_mode(); + + // Try loading an SVG first, then PNG if SVG is not found: + wxBitmap* bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode, new_color); + if (bmp == nullptr) { + // Neither SVG nor PNG has been found, raise error + throw Slic3r::RuntimeError("Could not load bitmap: " + bmp_name); + } + + return *bmp; +} + std::vector get_extruder_color_icons(bool thin_icon/* = false*/) { static Slic3r::GUI::BitmapCache bmp_cache; diff --git a/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 25876bd235..f78621a5c0 100644 --- a/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp @@ -51,7 +51,9 @@ int mode_icon_px_size(); wxBitmap create_menu_bitmap(const std::string& bmp_name); wxBitmap create_scaled_bitmap(const std::string& bmp_name, wxWindow *win = nullptr, - const int px_cnt = 16, const bool grayscale = false, const bool menu_bitmap = false); + const int px_cnt = 16, const bool grayscale = false, + const std::string& new_color = std::string(), // color witch will used instead of orange + const bool menu_bitmap = false); std::vector get_extruder_color_icons(bool thin_icon = false); From a3f6ce1ac6a37c10e078672215c93bc0d705cab0 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 10 Nov 2021 10:49:43 +0100 Subject: [PATCH 093/130] MsgDialog: Some code refactoring. Use style for whole Dialog instead of wxWindowID for just one default button --- src/slic3r/GUI/GUI_App.cpp | 2 +- src/slic3r/GUI/MsgDialog.cpp | 36 ++++++++++++-------------------- src/slic3r/GUI/MsgDialog.hpp | 3 +-- src/slic3r/GUI/Plater.cpp | 4 ++-- src/slic3r/GUI/UpdateDialogs.cpp | 23 +++++++------------- 5 files changed, 24 insertions(+), 44 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 9c16a782e3..9e92f1ac98 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -865,7 +865,7 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup) "\n\nIf you select yes, PrusaSlicer will copy all profiles and other files from found folder to the current one." "\nIf you select no, you will start with clean installation with configuration wizard.") , m_older_data_dir_path, last_semver.to_string()) - , _L("PrusaSlicer"), wxICON_QUESTION | wxYES_NO); + , _L("PrusaSlicer"), /*wxICON_QUESTION | */wxYES_NO); if (msg.ShowModal() == wxID_YES) { std::string snapshot_id; if (backup) { diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 2515f0281b..1cf5224174 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -25,7 +25,7 @@ namespace Slic3r { namespace GUI { -MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id, wxBitmap bitmap) +MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, long style, wxBitmap bitmap) : wxDialog(parent ? parent : dynamic_cast(wxGetApp().mainframe), wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) , boldfont(wxGetApp().normal_font()) , content_sizer(new wxBoxSizer(wxVERTICAL)) @@ -49,12 +49,6 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he rightsizer->Add(content_sizer, 1, wxEXPAND); btn_sizer->AddStretchSpacer(); - if (button_id != wxID_NONE) { - auto *button = new wxButton(this, button_id); - button->SetFocus(); - btn_sizer->Add(button); - } - logo = new wxStaticBitmap(this, wxID_ANY, bitmap.IsOk() ? bitmap : wxNullBitmap); topsizer->Add(logo, 0, wxALL, BORDER); @@ -64,6 +58,8 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he main_sizer->Add(new StaticLine(this), 0, wxEXPAND | wxLEFT | wxRIGHT, HORIZ_SPACING); main_sizer->Add(btn_sizer, 0, wxALL | wxEXPAND, VERT_SPACING); + apply_style(style); + SetSizerAndFit(main_sizer); } @@ -83,9 +79,9 @@ void MsgDialog::apply_style(long style) if (style & wxNO) add_btn(wxID_NO); if (style & wxCANCEL) add_btn(wxID_CANCEL); - logo->SetBitmap(create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : - style & wxICON_INFORMATION ? "info" : - style & wxICON_QUESTION ? "question" : "PrusaSlicer"/*"_192px_grayscale.png"*/, this, 84)); + logo->SetBitmap( create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : + style & wxICON_INFORMATION ? "info" : + style & wxICON_QUESTION ? "question" : "PrusaSlicer", this, 64, style & wxICON_ERROR)); } void MsgDialog::finalize() @@ -161,18 +157,17 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin msg_escaped = std::string("

") + msg_escaped + "
"; html->SetPage("" + wxString::FromUTF8(msg_escaped.data()) + ""); content_sizer->Add(html, 1, wxEXPAND); + wxGetApp().UpdateDarkUI(html); } // ErrorDialog ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_font) : MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_NAME), - wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_NAME), - wxID_NONE) + wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_NAME), wxOK) , msg(msg) { add_msg_content(this, content_sizer, msg, monospaced_font); - add_btn(wxID_OK, true); // Use a small bitmap with monospaced font, as the error text will not be wrapped. logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/84)); @@ -189,10 +184,9 @@ WarningDialog::WarningDialog(wxWindow *parent, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_NAME) : caption, - wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_NAME), wxID_NONE) + wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_NAME), style) { add_msg_content(this, content_sizer, message); - apply_style(style); finalize(); } @@ -203,10 +197,9 @@ MessageDialog::MessageDialog(wxWindow* parent, const wxString& message, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) - : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, style) { add_msg_content(this, content_sizer, message); - apply_style(style); finalize(); } @@ -217,16 +210,16 @@ RichMessageDialog::RichMessageDialog(wxWindow* parent, const wxString& message, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) - : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, style) { add_msg_content(this, content_sizer, message); m_checkBox = new wxCheckBox(this, wxID_ANY, m_checkBoxText); + wxGetApp().UpdateDarkUI(m_checkBox); m_checkBox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_checkBoxValue = m_checkBox->GetValue(); }); btn_sizer->Insert(0, m_checkBox, wxALIGN_CENTER_VERTICAL); - apply_style(style); finalize(); } @@ -245,13 +238,10 @@ int RichMessageDialog::ShowModal() // InfoDialog InfoDialog::InfoDialog(wxWindow* parent, const wxString &title, const wxString& msg) - : MsgDialog(parent, wxString::Format(_L("%s information"), SLIC3R_APP_NAME), title) + : MsgDialog(parent, wxString::Format(_L("%s information"), SLIC3R_APP_NAME), title, wxOK | wxICON_INFORMATION) , msg(msg) { add_msg_content(this, content_sizer, msg); - // Set info bitmap - logo->SetBitmap(create_scaled_bitmap("info", this, 84)); - finalize(); } diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index a4807fd06d..e49c29b857 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -41,8 +41,7 @@ protected: HORIZ_SPACING = 5, }; - // button_id is an id of a button that can be added by default, use wxID_NONE to disable - MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id = wxID_OK, wxBitmap bitmap = wxNullBitmap); + MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, long style = wxOK, wxBitmap bitmap = wxNullBitmap); void add_btn(wxWindowID btn_id, bool set_focus = false); void apply_style(long style); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ca4e3e0577..a85c4b0a04 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2487,7 +2487,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", "The dimensions of some objects from file %s seem to be defined in meters.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + _L("The object is too small"), wxICON_QUESTION | wxYES_NO); dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); int answer = dlg.ShowModal(); if (dlg.IsCheckBoxChecked()) @@ -2509,7 +2509,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", "The dimensions of some objects from file %s seem to be defined in inches.\n" "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); + _L("The object is too small"), wxICON_QUESTION | wxYES_NO); dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); int answer = dlg.ShowModal(); if (dlg.IsCheckBoxChecked()) diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index de132b1848..d617ca6608 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -156,7 +156,7 @@ MsgUpdateConfig::~MsgUpdateConfig() {} //MsgUpdateForced MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : - MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxID_NONE) + MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxICON_ERROR) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "%s will now start updates. Otherwise it won't be able to start.\n\n" @@ -165,7 +165,6 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : "Updated configuration bundles:" )), SLIC3R_APP_NAME)); - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); text->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); content_sizer->Add(text); @@ -210,7 +209,7 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : btn_exit->Bind(wxEVT_BUTTON, exiter); btn_ok->Bind(wxEVT_BUTTON, exiter); - Fit(); + finalize(); } MsgUpdateForced::~MsgUpdateForced() {} @@ -219,10 +218,8 @@ MsgUpdateForced::~MsgUpdateForced() {} MsgDataIncompatible::MsgDataIncompatible(const std::unordered_map &incompats) : MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), - wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), wxID_NONE) + wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), /*wxID_NONE | */wxICON_ERROR) { - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); - auto *text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "This version of %s is not compatible with currently installed configuration bundles.\n" "This probably happened as a result of running an older %s after using a newer one.\n\n" @@ -265,7 +262,7 @@ MsgDataIncompatible::MsgDataIncompatible(const std::unordered_mapBind(wxEVT_BUTTON, exiter); btn_reconf->Bind(wxEVT_BUTTON, exiter); - Fit(); + finalize(); } MsgDataIncompatible::~MsgDataIncompatible() {} @@ -303,9 +300,7 @@ MsgDataLegacy::MsgDataLegacy() : content_sizer->Add(link); content_sizer->AddSpacer(VERT_SPACING); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgDataLegacy::~MsgDataLegacy() {} @@ -314,7 +309,7 @@ MsgDataLegacy::~MsgDataLegacy() {} // MsgNoUpdate MsgNoUpdates::MsgNoUpdates() : - MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available"))) + MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available")), wxICON_ERROR) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format( @@ -327,11 +322,7 @@ MsgNoUpdates::MsgNoUpdates() : content_sizer->Add(text); content_sizer->AddSpacer(VERT_SPACING); - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); - - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgNoUpdates::~MsgNoUpdates() {} From bfa91cbd9535c2edba914a48fd81eec6c7c2ce0f Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 9 Nov 2021 17:14:54 +0100 Subject: [PATCH 094/130] Windows: Include blacklisted libraries in SendSystemInfo data --- src/slic3r/GUI/SendSystemInfoDialog.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/slic3r/GUI/SendSystemInfoDialog.cpp b/src/slic3r/GUI/SendSystemInfoDialog.cpp index da6e57f888..4b11347e23 100644 --- a/src/slic3r/GUI/SendSystemInfoDialog.cpp +++ b/src/slic3r/GUI/SendSystemInfoDialog.cpp @@ -1,6 +1,7 @@ #include "SendSystemInfoDialog.hpp" #include "libslic3r/AppConfig.hpp" +#include "libslic3r/BlacklistedLibraryCheck.hpp" #include "libslic3r/Platform.hpp" #include "libslic3r/Utils.hpp" @@ -479,6 +480,29 @@ static std::string generate_system_info_json() hw_node.add_child("Monitors", monitors_node); data_node.add_child("Hardware", hw_node); +#ifdef _WIN32 + { + pt::ptree blacklisted_node; + std::vector blacklisted_libraries; + BlacklistedLibraryCheck::get_instance().get_blacklisted(blacklisted_libraries); + for (const std::wstring& str : blacklisted_libraries) { + std::string utf8; + const size_t num_bytes = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.size(), utf8.data(), 0, 0, 0); + utf8.resize(num_bytes); + if (WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.size(), utf8.data(), num_bytes, 0, 0)) { + if (size_t last_bs_pos = utf8.find_last_of("\\"); last_bs_pos < utf8.size() - 1) { + // Remove anything before last backslash so we don't send the path to the DLL. + utf8.erase(0, last_bs_pos + 1); + } + pt::ptree node; // Create an unnamed node containing the value + node.put("", utf8); + blacklisted_node.push_back(std::make_pair("", node)); // Add this node to the list. + } + } + data_node.add_child("Blacklisted libraries", blacklisted_node); + } +#endif // _WIN32 + pt::ptree opengl_node; opengl_node.put("Version", OpenGLManager::get_gl_info().get_version()); opengl_node.put("GLSLVersion", OpenGLManager::get_gl_info().get_glsl_version()); From de1785760c613c757c4aa8c69118903220a445d1 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 10 Nov 2021 11:30:48 +0100 Subject: [PATCH 095/130] Follow up https://github.com/prusa3d/PrusaSlicer/commit/e8be7b2ecd3a21676af73805f96157f37418f8e5 - Remove unused code --- src/slic3r/GUI/wxExtensions.cpp | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 8aead7a7ca..01a553a81a 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -460,33 +460,6 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, return *bmp; } -wxBitmap create_scaled_bitmap(const std::string& bmp_name_in, - const std::string& new_color, // color witch will used instead of orange - wxWindow* win, - const int px_cnt/* = 16*/, - const bool grayscale/* = false*/) -{ - static Slic3r::GUI::BitmapCache cache; - - unsigned int width = 0; - unsigned int height = (unsigned int)(em_unit(win) * px_cnt * 0.1f + 0.5f); - - std::string bmp_name = bmp_name_in; - auto it = boost::find_last(bmp_name, ".png"); - assert(it == bmp_name.end()); // this function works just with SVGs - - bool dark_mode = Slic3r::GUI::wxGetApp().dark_mode(); - - // Try loading an SVG first, then PNG if SVG is not found: - wxBitmap* bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode, new_color); - if (bmp == nullptr) { - // Neither SVG nor PNG has been found, raise error - throw Slic3r::RuntimeError("Could not load bitmap: " + bmp_name); - } - - return *bmp; -} - std::vector get_extruder_color_icons(bool thin_icon/* = false*/) { static Slic3r::GUI::BitmapCache bmp_cache; From 8915d8bc91d243c56f2ed73d3aca6eef946c35f5 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 10 Nov 2021 11:37:49 +0100 Subject: [PATCH 096/130] Improvement of previous commit: - use boost::nowide instead of WinAPI for the encoding conversion - only add the node when it is not empty --- src/slic3r/GUI/SendSystemInfoDialog.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/SendSystemInfoDialog.cpp b/src/slic3r/GUI/SendSystemInfoDialog.cpp index 4b11347e23..fb3205af3c 100644 --- a/src/slic3r/GUI/SendSystemInfoDialog.cpp +++ b/src/slic3r/GUI/SendSystemInfoDialog.cpp @@ -485,21 +485,18 @@ static std::string generate_system_info_json() pt::ptree blacklisted_node; std::vector blacklisted_libraries; BlacklistedLibraryCheck::get_instance().get_blacklisted(blacklisted_libraries); - for (const std::wstring& str : blacklisted_libraries) { - std::string utf8; - const size_t num_bytes = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.size(), utf8.data(), 0, 0, 0); - utf8.resize(num_bytes); - if (WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.size(), utf8.data(), num_bytes, 0, 0)) { - if (size_t last_bs_pos = utf8.find_last_of("\\"); last_bs_pos < utf8.size() - 1) { - // Remove anything before last backslash so we don't send the path to the DLL. - utf8.erase(0, last_bs_pos + 1); - } - pt::ptree node; // Create an unnamed node containing the value - node.put("", utf8); - blacklisted_node.push_back(std::make_pair("", node)); // Add this node to the list. + for (const std::wstring& wstr : blacklisted_libraries) { + std::string utf8 = boost::nowide::narrow(wstr); + if (size_t last_bs_pos = utf8.find_last_of("\\"); last_bs_pos < utf8.size() - 1) { + // Remove anything before last backslash so we don't send the path to the DLL. + utf8.erase(0, last_bs_pos + 1); } + pt::ptree node; // Create an unnamed node containing the value + node.put("", utf8); + blacklisted_node.push_back(std::make_pair("", node)); // Add this node to the list. } - data_node.add_child("Blacklisted libraries", blacklisted_node); + if (! blacklisted_libraries.empty()) + data_node.add_child("Blacklisted libraries", blacklisted_node); } #endif // _WIN32 From f7db7c0a26a11a095536df3f0d47064f28b2011f Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 10 Nov 2021 12:07:43 +0100 Subject: [PATCH 097/130] #7282 - Fixed crash after splitting object into parts (missing or degenerate convex hulls) --- src/libslic3r/Model.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index e88188b449..55ca4b8da3 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1860,18 +1860,17 @@ size_t ModelVolume::split(unsigned int max_extruders) size_t idx = 0; size_t ivolume = std::find(this->object->volumes.begin(), this->object->volumes.end(), this) - this->object->volumes.begin(); - std::string name = this->name; + const std::string name = this->name; unsigned int extruder_counter = 0; - Vec3d offset = this->get_offset(); + const Vec3d offset = this->get_offset(); for (TriangleMesh &mesh : meshes) { if (mesh.empty()) // Repair may have removed unconnected triangles, thus emptying the mesh. continue; - if (idx == 0) - { + if (idx == 0) { this->set_mesh(std::move(mesh)); this->calculate_convex_hull(); // Assign a new unique ID, so that a new GLVolume will be generated. @@ -1890,7 +1889,19 @@ size_t ModelVolume::split(unsigned int max_extruders) this->object->volumes[ivolume]->m_is_splittable = 0; ++ idx; } - + + // discard volumes for which the convex hull was not generated or is degenerate + size_t i = 0; + while (i < this->object->volumes.size()) { + std::shared_ptr hull = this->object->volumes[i]->get_convex_hull_shared_ptr(); + if (hull == nullptr || hull->its.vertices.empty() || hull->its.indices.empty()) { + this->object->delete_volume(i); + --idx; + --i; + } + ++i; + } + return idx; } From 7122572841ad5b11667b388a17edb3dc828f95ed Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 10 Nov 2021 12:56:54 +0100 Subject: [PATCH 098/130] Fixed black SLA material color. --- resources/profiles/PrusaResearch.ini | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 27d80b5337..12f16679b2 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -4752,7 +4752,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs -material_colour = #007EFD +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.025] inherits = *common 0.025* @@ -4768,7 +4768,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Esun -material_colour = #007EFD +material_colour = #595959 [sla_material:Photocentric Ash Grey @0.025] inherits = *common 0.025* @@ -4800,7 +4800,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure -material_colour = #007EFD +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.025] inherits = *common 0.025* @@ -4826,7 +4826,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025] inherits = *common 0.025* @@ -4995,7 +4995,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.025] inherits = *common 0.025* @@ -5131,7 +5131,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax -material_colour = #007EFD +material_colour = #595959 ########### Materials 0.05 @@ -5253,7 +5253,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure -material_colour = #007EFD +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.05] inherits = *common 0.05* @@ -5309,7 +5309,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Esun -material_colour = #007EFD +material_colour = #595959 [sla_material:FunToDo Castable Blend Red @0.05] inherits = *common 0.05* @@ -5349,7 +5349,7 @@ exposure_time = 20 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM -material_colour = #007EFD +material_colour = #595959 [sla_material:3DM-DENT @0.05] inherits = *common 0.05* @@ -5429,7 +5429,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs -material_colour = #007EFD +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.05] inherits = *common 0.05* @@ -5533,7 +5533,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech -material_colour = #007EFD +material_colour = #595959 [sla_material:NextDent Model 2.0 Grey @0.05] inherits = *common 0.05* @@ -5621,7 +5621,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax -material_colour = #007EFD +material_colour = #595959 ## Prusa Polymers 0.05 @@ -5639,7 +5639,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05] inherits = *common 0.05* @@ -5681,7 +5681,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 ## [sla_material:Prusa Super Low Odor Beige Tough @0.05] ## inherits = *common 0.05* @@ -5901,7 +5901,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.05] inherits = *common 0.05* @@ -5955,7 +5955,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1] inherits = *common 0.1* @@ -6021,7 +6021,7 @@ exposure_time = 13 initial_exposure_time = 55 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Transparent Tough @0.1] inherits = *common 0.1* @@ -6075,7 +6075,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -6117,7 +6117,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -6321,7 +6321,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6363,7 +6363,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6567,7 +6567,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6609,7 +6609,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa -material_colour = #007EFD +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.1 SL1S] inherits = *0.1_sl1s* From 9994e0bcbc14fdfbd46f57d3b04d5aad087f8c36 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 1 Nov 2021 12:18:17 +0100 Subject: [PATCH 099/130] Start updater during start of prusaslicer. --- src/PrusaSlicer.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 41d5231f16..17a59d04a7 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -677,6 +677,45 @@ bool CLI::setup(int argc, char **argv) set_local_dir((path_resources / "localization").string()); set_sys_shapes_dir((path_resources / "shapes").string()); +#ifdef _WIN32 + // find updater exe + for (auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { + if (dir_entry.path().filename() == "prusaslicer-updater.exe") { + // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst + std::string args = dir_entry.path().string(); + args += " /silent"; + + // additional information + STARTUPINFOA si; + PROCESS_INFORMATION pi; + + // set the size of the structures + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + + // start the program up + CreateProcessA(NULL, // the path + const_cast(args.c_str()), // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + 0, // No creation flags + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses) + ); + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + + break; + } + } +#endif //_WIN32 + + // Parse all command line options into a DynamicConfig. // If any option is unsupported, print usage and abort immediately. t_config_option_keys opt_order; From 262304c777f4905fc74b9c4b5d1d9819d645d54d Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 3 Nov 2021 10:57:45 +0100 Subject: [PATCH 100/130] Use correct encoding when calling external updater --- src/PrusaSlicer.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 17a59d04a7..2b4209576c 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -679,14 +679,18 @@ bool CLI::setup(int argc, char **argv) #ifdef _WIN32 // find updater exe - for (auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { + for (const auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { if (dir_entry.path().filename() == "prusaslicer-updater.exe") { // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst - std::string args = dir_entry.path().string(); - args += " /silent"; + + // Using quoted string as mentioned in CreateProcessW docs. + std::wstring wcmd = L"\"" + dir_entry.path().wstring() + L"\""; + wcmd += L" /silent"; + + // additional information - STARTUPINFOA si; + STARTUPINFOW si; PROCESS_INFORMATION pi; // set the size of the structures @@ -695,8 +699,8 @@ bool CLI::setup(int argc, char **argv) ZeroMemory(&pi, sizeof(pi)); // start the program up - CreateProcessA(NULL, // the path - const_cast(args.c_str()), // Command line + if (CreateProcessW(NULL, // the path + wcmd.data(), // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE @@ -705,11 +709,11 @@ bool CLI::setup(int argc, char **argv) NULL, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses) - ); - // Close process and thread handles. - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - + )) { + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + } break; } } From 6895e0fde132f672d4a5981faff0f16b373597b3 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 3 Nov 2021 11:00:20 +0100 Subject: [PATCH 101/130] External updater is only run in GUI mode --- src/PrusaSlicer.cpp | 43 ------------------------------ src/slic3r/GUI/GUI_App.cpp | 54 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 2b4209576c..41d5231f16 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -677,49 +677,6 @@ bool CLI::setup(int argc, char **argv) set_local_dir((path_resources / "localization").string()); set_sys_shapes_dir((path_resources / "shapes").string()); -#ifdef _WIN32 - // find updater exe - for (const auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { - if (dir_entry.path().filename() == "prusaslicer-updater.exe") { - // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst - - // Using quoted string as mentioned in CreateProcessW docs. - std::wstring wcmd = L"\"" + dir_entry.path().wstring() + L"\""; - wcmd += L" /silent"; - - - - // additional information - STARTUPINFOW si; - PROCESS_INFORMATION pi; - - // set the size of the structures - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - ZeroMemory(&pi, sizeof(pi)); - - // start the program up - if (CreateProcessW(NULL, // the path - wcmd.data(), // Command line - NULL, // Process handle not inheritable - NULL, // Thread handle not inheritable - FALSE, // Set handle inheritance to FALSE - 0, // No creation flags - NULL, // Use parent's environment block - NULL, // Use parent's starting directory - &si, // Pointer to STARTUPINFO structure - &pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses) - )) { - // Close process and thread handles. - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } - break; - } - } -#endif //_WIN32 - - // Parse all command line options into a DynamicConfig. // If any option is unsupported, print usage and abort immediately. t_config_option_keys opt_order; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 9e92f1ac98..aae61e8b5e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -83,6 +83,9 @@ #include #endif // _MSW_DARK_MODE #endif +#ifdef _WIN32 +#include +#endif #if ENABLE_THUMBNAIL_GENERATOR_DEBUG #include @@ -424,6 +427,53 @@ bool static check_old_linux_datadir(const wxString& app_name) { #endif +#ifdef _WIN32 +static void run_updater_win() +{ + // find updater exe + boost::filesystem::path path_to_binary = boost::dll::program_location(); + for (const auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { + if (dir_entry.path().filename() == "prusaslicer-updater.exe") { + // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst + + // Using quoted string as mentioned in CreateProcessW docs. + std::wstring wcmd = L"\"" + dir_entry.path().wstring() + L"\""; + wcmd += L" /silent"; + + // additional information + STARTUPINFOW si; + PROCESS_INFORMATION pi; + + // set the size of the structures + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + + // start the program up + if (CreateProcessW(NULL, // the path + wcmd.data(), // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + 0, // No creation flags + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses) + )) { + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + } + break; + } + } + return; +} +#endif //_WIN32 + + + wxString file_wildcards(FileType file_type, const std::string &custom_extension) { static const std::string defaults[FT_SIZE] = { @@ -686,6 +736,10 @@ void GUI_App::post_init() // sees something else than "we want something" on the first start. show_send_system_info_dialog_if_needed(); } + #ifdef _WIN32 + // Run external updater on Windows. + run_updater_win(); + #endif // _WIN32 }); } From 43986c289660f04f3698ddd082b28a1d37f3eb4e Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 8 Nov 2021 17:20:39 +0100 Subject: [PATCH 102/130] Changes in notifying about new releases. - Unified preferences settings. version_check option is replaced with notify_release that has 3 states. - fixed logic when show notification based on version string. - notification shows released version - dialog notifying new version is never showing if external updater is running. Escape quotes inside path to external updater --- src/libslic3r/AppConfig.cpp | 2 -- src/slic3r/GUI/ConfigWizard.cpp | 4 +-- src/slic3r/GUI/GUI_App.cpp | 47 ++++++++++++++++---------- src/slic3r/GUI/NotificationManager.cpp | 8 ++--- src/slic3r/GUI/NotificationManager.hpp | 4 +-- src/slic3r/GUI/Preferences.cpp | 8 ----- src/slic3r/GUI/UpdateDialogs.cpp | 2 +- src/slic3r/Utils/PresetUpdater.cpp | 47 +++++++++++++++----------- src/slic3r/Utils/PresetUpdater.hpp | 3 +- 9 files changed, 65 insertions(+), 60 deletions(-) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index b6406bf414..9c9e7e0f30 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -71,8 +71,6 @@ void AppConfig::set_defaults() if (get("drop_project_action").empty()) set("drop_project_action", "1"); - if (get("version_check").empty()) - set("version_check", "1"); if (get("preset_update").empty()) set("preset_update", "1"); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 762de2cf53..737c14317a 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1206,7 +1206,7 @@ PageUpdate::PageUpdate(ConfigWizard *parent) boldfont.SetWeight(wxFONTWEIGHT_BOLD); auto *box_slic3r = new wxCheckBox(this, wxID_ANY, _L("Check for application updates")); - box_slic3r->SetValue(app_config->get("version_check") == "1"); + box_slic3r->SetValue(app_config->get("notify_release") != "none"); append(box_slic3r); append_text(wxString::Format(_L( "If enabled, %s checks for new application versions online. When a new version becomes available, " @@ -2697,7 +2697,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese app_config->set_vendors(appconfig_new); - app_config->set("version_check", page_update->version_check ? "1" : "0"); + app_config->set("notify_release", page_update->version_check ? "all" : "none"); app_config->set("preset_update", page_update->preset_update ? "1" : "0"); app_config->set("export_sources_full_pathnames", page_reload_from_disk->full_pathnames ? "1" : "0"); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index aae61e8b5e..c7513bb8b3 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -428,7 +428,7 @@ bool static check_old_linux_datadir(const wxString& app_name) { #ifdef _WIN32 -static void run_updater_win() +static bool run_updater_win() { // find updater exe boost::filesystem::path path_to_binary = boost::dll::program_location(); @@ -464,11 +464,14 @@ static void run_updater_win() // Close process and thread handles. CloseHandle(pi.hProcess); CloseHandle(pi.hThread); + return true; + } else { + BOOST_LOG_TRIVIAL(error) << "Failed to start prusaslicer-updater.exe with command " << wcmd; } break; } } - return; + return false; } #endif //_WIN32 @@ -728,7 +731,6 @@ void GUI_App::post_init() this->check_updates(false); CallAfter([this] { bool cw_showed = this->config_wizard_startup(); - this->preset_updater->slic3r_update_notify(); this->preset_updater->sync(preset_bundle); if (! cw_showed) { // The CallAfter is needed as well, without it, GL extensions did not show. @@ -736,10 +738,15 @@ void GUI_App::post_init() // sees something else than "we want something" on the first start. show_send_system_info_dialog_if_needed(); } + bool updater_running = #ifdef _WIN32 // Run external updater on Windows. run_updater_win(); + #else + false; #endif // _WIN32 + if (!updater_running) + this->preset_updater->slic3r_update_notify(); }); } @@ -1124,26 +1131,30 @@ bool GUI_App::on_init_inner() Bind(EVT_SLIC3R_VERSION_ONLINE, [this](const wxCommandEvent& evt) { app_config->set("version_online", into_u8(evt.GetString())); app_config->save(); - if (this->plater_ != nullptr) { + std::string opt = app_config->get("notify_release"); + if (this->plater_ != nullptr && (opt == "all" || opt == "release")) { if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->push_notification(NotificationType::NewAppAvailable); + this->plater_->get_notification_manager()->push_notification(NotificationType::NewAppAvailable + , NotificationManager::NotificationLevel::ImportantNotificationLevel + , Slic3r::format(_u8L("New release version %1% is available."), evt.GetString()) + , _u8L("See Download page.") + , [](wxEvtHandler* evnthndlr) {wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); return true; } + ); } } }); - Bind(EVT_SLIC3R_ALPHA_VERSION_ONLINE, [this](const wxCommandEvent& evt) { + Bind(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, [this](const wxCommandEvent& evt) { app_config->save(); - if (this->plater_ != nullptr && app_config->get("notify_testing_release") == "1") { - if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->push_notification(NotificationType::NewAlphaAvailable); - } - } - }); - Bind(EVT_SLIC3R_BETA_VERSION_ONLINE, [this](const wxCommandEvent& evt) { - app_config->save(); - if (this->plater_ != nullptr && app_config->get("notify_testing_release") == "1") { - if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->close_notification_of_type(NotificationType::NewAlphaAvailable); - this->plater_->get_notification_manager()->push_notification(NotificationType::NewBetaAvailable); + if (this->plater_ != nullptr && app_config->get("notify_release") == "all") { + std::string evt_string = into_u8(evt.GetString()); + if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(evt_string)) { + auto notif_type = (evt_string.find("beta") != std::string::npos ? NotificationType::NewBetaAvailable : NotificationType::NewAlphaAvailable); + this->plater_->get_notification_manager()->push_notification( notif_type + , NotificationManager::NotificationLevel::ImportantNotificationLevel + , Slic3r::format(_u8L("New prerelease version %1% is available."), evt_string) + , _u8L("See Releases page.") + , [](wxEvtHandler* evnthndlr) {wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; } + ); } } }); diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp index 0af8e32f5e..bcef85107b 100644 --- a/src/slic3r/GUI/NotificationManager.cpp +++ b/src/slic3r/GUI/NotificationManager.cpp @@ -41,12 +41,6 @@ const NotificationManager::NotificationData NotificationManager::basic_notificat return true; } }, - {NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, - {NotificationType::NewAlphaAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New alpha release is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, - {NotificationType::NewBetaAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New beta release is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, {NotificationType::EmptyColorChangeCode, NotificationLevel::PrintInfoNotificationLevel, 10, _u8L("You have just added a G-code for color change, but its value is empty.\n" "To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") }, @@ -61,6 +55,8 @@ const NotificationManager::NotificationData NotificationManager::basic_notificat {NotificationType::UndoDesktopIntegrationFail, NotificationLevel::WarningNotificationLevel, 10, _u8L("Undo desktop integration failed.") }, {NotificationType::ExportOngoing, NotificationLevel::RegularNotificationLevel, 0, _u8L("Exporting.") }, + //{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { + // wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, //{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New vesion of PrusaSlicer is available.", _u8L("Download page.") }, //{NotificationType::LoadingFailed, NotificationLevel::RegularNotificationLevel, 20, _u8L("Loading of model has Failed") }, //{NotificationType::DeviceEjected, NotificationLevel::RegularNotificationLevel, 10, _u8L("Removable device has been safely ejected")} // if we want changeble text (like here name of device), we need to do it as CustomNotification diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index 6c50f64070..f162182dcc 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -150,7 +150,7 @@ public: // Push a NotificationType::CustomNotification with NotificationLevel::RegularNotificationLevel and 10s fade out interval. void push_notification(const std::string& text, int timestamp = 0); // Push a NotificationType::CustomNotification with provided notification level and 10s for RegularNotificationLevel. - // ErrorNotificationLevel and ImportantNotificationLevel are never faded out. + // ErrorNotificationLevel are never faded out. void push_notification(NotificationType type, NotificationLevel level, const std::string& text, const std::string& hypertext = "", std::function callback = std::function(), int timestamp = 0); // Pushes basic_notification with delay. See push_delayed_notification_data. @@ -720,7 +720,7 @@ private: case NotificationLevel::ErrorNotificationLevel: return 0; case NotificationLevel::WarningNotificationLevel: return 0; - case NotificationLevel::ImportantNotificationLevel: return 0; + case NotificationLevel::ImportantNotificationLevel: return 20; case NotificationLevel::ProgressBarNotificationLevel: return 2; case NotificationLevel::PrintInfoShortNotificationLevel: return 5; case NotificationLevel::RegularNotificationLevel: return 10; diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index c73fd40644..332de64cb2 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -141,14 +141,6 @@ void PreferencesDialog::build(size_t selected_tab) option = Option(def, "background_processing"); m_optgroup_general->append_single_option_line(option); - // Please keep in sync with ConfigWizard - def.label = L("Check for application updates"); - def.type = coBool; - def.tooltip = L("If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done."); - def.set_default_value(new ConfigOptionBool(app_config->get("version_check") == "1")); - option = Option(def, "version_check"); - m_optgroup_general->append_single_option_line(option); - m_optgroup_general->append_separator(); // Please keep in sync with ConfigWizard diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index d617ca6608..552ca43be1 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -26,7 +26,7 @@ namespace GUI { static const char* URL_CHANGELOG = "https://files.prusa3d.com/?latest=slicer-stable&lng=%1%"; -static const char* URL_DOWNLOAD = "https://www.prusa3d.com/downloads&lng=%1%"; +static const char* URL_DOWNLOAD = "https://www.prusa3d.com/slicerweb&lng=%1%"; static const char* URL_DEV = "https://github.com/prusa3d/PrusaSlicer/releases/tag/version_%1%"; static const std::string CONFIG_UPDATE_WIKI_URL("https://github.com/prusa3d/PrusaSlicer/wiki/Slic3r-PE-1.40-configuration-update"); diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 76ecc76d9f..1d9d287bb5 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -137,8 +137,7 @@ struct Updates wxDEFINE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); -wxDEFINE_EVENT(EVT_SLIC3R_ALPHA_VERSION_ONLINE, wxCommandEvent); -wxDEFINE_EVENT(EVT_SLIC3R_BETA_VERSION_ONLINE, wxCommandEvent); +wxDEFINE_EVENT(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, wxCommandEvent); struct PresetUpdater::priv { @@ -189,7 +188,7 @@ PresetUpdater::priv::priv() // Pull relevant preferences from AppConfig void PresetUpdater::priv::set_download_prefs(AppConfig *app_config) { - enabled_version_check = app_config->get("version_check") == "1"; + enabled_version_check = app_config->get("notify_release") != "none"; version_check_url = app_config->version_check_url(); enabled_config_update = app_config->get("preset_update") == "1" && !app_config->legacy_datadir(); } @@ -276,8 +275,9 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const version = body.substr(0, first_nl_pos); else version = body; - if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + boost::optional release_version = Semver::parse(version); + if (!release_version) { + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } BOOST_LOG_TRIVIAL(info) << format("Got %1% online version: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); @@ -286,6 +286,7 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const GUI::wxGetApp().QueueEvent(evt); // alpha / beta version + std::vector prerelease_versions; size_t nexn_nl_pos = first_nl_pos; while (nexn_nl_pos != std::string::npos && body.size() > nexn_nl_pos + 1) { const auto last_nl_pos = nexn_nl_pos; @@ -300,28 +301,36 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const if (line.substr(0, 6) == "alpha=") { version = line.substr(6); if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents for alpha release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents for alpha release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } - BOOST_LOG_TRIVIAL(info) << format("Got %1% online version of alpha release: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); - wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_ALPHA_VERSION_ONLINE); - evt->SetString(GUI::from_u8(version)); - GUI::wxGetApp().QueueEvent(evt); - + prerelease_versions.emplace_back(version); // beta } else if (line.substr(0, 5) == "beta=") { version = line.substr(5); if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents for beta release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents for beta release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } - BOOST_LOG_TRIVIAL(info) << format("Got %1% online version of beta release: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); - wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_BETA_VERSION_ONLINE); - evt->SetString(GUI::from_u8(version)); - GUI::wxGetApp().QueueEvent(evt); + prerelease_versions.emplace_back(version); } } + // find recent version that is newer than last full release. + boost::optional recent_version; + for (const std::string& ver_string : prerelease_versions) { + boost::optional ver = Semver::parse(ver_string); + if (ver && *release_version < *ver && ((recent_version && *recent_version < *ver) || !recent_version)) { + recent_version = ver; + version = ver_string; + } + } + if (recent_version) { + BOOST_LOG_TRIVIAL(info) << format("Got %1% online version: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); + wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE); + evt->SetString(GUI::from_u8(version)); + GUI::wxGetApp().QueueEvent(evt); + } } // Download vendor indices. Also download new bundles if an index indicates there's a new one available. @@ -741,8 +750,8 @@ void PresetUpdater::sync(PresetBundle *preset_bundle) void PresetUpdater::slic3r_update_notify() { - if (! p->enabled_version_check) { return; } - + if (! p->enabled_version_check) + return; auto* app_config = GUI::wxGetApp().app_config; const auto ver_online_str = app_config->get("version_online"); const auto ver_online = Semver::parse(ver_online_str); @@ -754,7 +763,7 @@ void PresetUpdater::slic3r_update_notify() GUI::MsgUpdateSlic3r notification(Slic3r::SEMVER, *ver_online); notification.ShowModal(); if (notification.disable_version_check()) { - app_config->set("version_check", "0"); + app_config->set("notify_release", "none"); p->enabled_version_check = false; } } diff --git a/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index 085aaa4a6a..1313c3df83 100644 --- a/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp @@ -63,7 +63,6 @@ private: }; wxDECLARE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); -wxDECLARE_EVENT(EVT_SLIC3R_ALPHA_VERSION_ONLINE, wxCommandEvent); -wxDECLARE_EVENT(EVT_SLIC3R_BETA_VERSION_ONLINE, wxCommandEvent); +wxDECLARE_EVENT(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, wxCommandEvent); } #endif From 954538fdf03eb229a636258c332276c7938626e2 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 10 Nov 2021 15:42:25 +0100 Subject: [PATCH 103/130] Imgui now recognizes numpad enter key presses --- src/slic3r/GUI/ImGuiWrapper.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 08e53b829e..5dd5da9f39 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -1189,6 +1189,7 @@ void ImGuiWrapper::init_input() io.KeyMap[ImGuiKey_Backspace] = WXK_BACK; io.KeyMap[ImGuiKey_Space] = WXK_SPACE; io.KeyMap[ImGuiKey_Enter] = WXK_RETURN; + io.KeyMap[ImGuiKey_KeyPadEnter] = WXK_NUMPAD_ENTER; io.KeyMap[ImGuiKey_Escape] = WXK_ESCAPE; io.KeyMap[ImGuiKey_A] = 'A'; io.KeyMap[ImGuiKey_C] = 'C'; From 7acc3690ab6aec2c70e9e3df473b905c10c02994 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Wed, 10 Nov 2021 15:26:42 +0100 Subject: [PATCH 104/130] Change in checking model name in physical printer dialog --- src/slic3r/GUI/PhysicalPrinterDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index 22ced12e41..3d528df4b7 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -534,7 +534,7 @@ void PhysicalPrinterDialog::update_host_type(bool printer_change) [model_id](const VendorProfile::PrinterModel& model) { return model.id == model_id; }); if (it != models.end() && (it->family == "MK3" || it->family == "MINI")) continue; - } else if (!preset->vendor && (boost::ends_with(model_id, "MK3") || boost::ends_with(model_id, "MINI"))) { + } else if (!preset->vendor && (boost::starts_with(model_id, "MK3") || boost::starts_with(model_id, "MINI"))) { continue; } From 8b51dc6deef5d36832c8a10641f01d6c7585aa6a Mon Sep 17 00:00:00 2001 From: David Kocik Date: Wed, 10 Nov 2021 16:34:54 +0100 Subject: [PATCH 105/130] Menu text --- src/slic3r/GUI/GUI_App.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index c7513bb8b3..ad611114e4 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2097,7 +2097,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) local_menu->Append(config_id_base + ConfigMenuWizard, config_wizard_name + dots, config_wizard_tooltip); local_menu->Append(config_id_base + ConfigMenuSnapshots, _L("&Configuration Snapshots") + dots, _L("Inspect / activate configuration snapshots")); local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _L("Take Configuration &Snapshot"), _L("Capture a configuration snapshot")); - local_menu->Append(config_id_base + ConfigMenuUpdate, _L("Check for updates"), _L("Check for configuration updates")); + local_menu->Append(config_id_base + ConfigMenuUpdate, _L("Check for Configuration Updates"), _L("Check for configuration updates")); #if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) //if (DesktopIntegrationDialog::integration_possible()) local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration")); From c49ba9f7f0690c2888bf8ea3bc057054c205ff26 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Wed, 10 Nov 2021 16:35:47 +0100 Subject: [PATCH 106/130] Round up rotation optimizer gizmo. --- src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 54fcfc2c7c..52e62f1571 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -512,9 +512,21 @@ GLGizmoRotate3D::RotoptimzeWindow::RotoptimzeWindow(ImGuiWrapper * imgui, y = std::min(y, alignment.bottom_limit - win_h); ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_Always); - ImGui::PushItemWidth(300.f); + float max_text_w = 0.; + auto padding = ImGui::GetStyle().FramePadding; + padding.x *= 2.f; + padding.y *= 2.f; - if (ImGui::BeginCombo(_L("Choose goal").c_str(), RotoptimizeJob::get_method_name(state.method_id).c_str())) { + for (size_t i = 0; i < RotoptimizeJob::get_methods_count(); ++i) { + float w = + ImGui::CalcTextSize(RotoptimizeJob::get_method_name(i).c_str()).x + + padding.x + ImGui::GetFrameHeight(); + max_text_w = std::max(w, max_text_w); + } + + ImGui::PushItemWidth(max_text_w); + + if (ImGui::BeginCombo("", RotoptimizeJob::get_method_name(state.method_id).c_str())) { for (size_t i = 0; i < RotoptimizeJob::get_methods_count(); ++i) { if (ImGui::Selectable(RotoptimizeJob::get_method_name(i).c_str())) { state.method_id = i; @@ -530,12 +542,18 @@ GLGizmoRotate3D::RotoptimzeWindow::RotoptimzeWindow(ImGuiWrapper * imgui, ImGui::EndCombo(); } + ImVec2 sz = ImGui::GetItemRectSize(); + if (ImGui::IsItemHovered()) ImGui::SetTooltip("%s", RotoptimizeJob::get_method_description(state.method_id).c_str()); ImGui::Separator(); - if ( imgui->button(_L("Optimize")) ) { + auto btn_txt = _L("Apply"); + auto btn_txt_sz = ImGui::CalcTextSize(btn_txt.c_str()); + ImVec2 button_sz = {btn_txt_sz.x + padding.x, btn_txt_sz.y + padding.y}; + ImGui::SetCursorPosX(padding.x + sz.x - button_sz.x); + if ( imgui->button(btn_txt) ) { wxGetApp().plater()->optimize_rotation(); } } From f94a1dbb4834e50882de0da9dd621c67827dbc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Wed, 10 Nov 2021 23:21:36 +0100 Subject: [PATCH 107/130] Added a missing include (GCC 11.1). --- src/slic3r/GUI/ImGuiWrapper.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index a56af22363..acad85c27b 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -6,6 +6,8 @@ #include +#include + #include "libslic3r/Point.hpp" namespace Slic3r {namespace Search { From 64e926b363b463d7119f06ac7dfcee17addfcbfc Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 11 Nov 2021 08:46:15 +0100 Subject: [PATCH 108/130] Fixed endless "New project" possibility --- src/slic3r/GUI/Plater.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index a85c4b0a04..92a6758a5c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -5059,6 +5059,7 @@ void Plater::new_project() Plater::SuppressSnapshots suppress(this); reset(); reset_project_dirty_initial_presets(); + wxGetApp().update_saved_preset_from_current_preset(); update_project_dirty_from_presets(); } From 549c98ac88ac3c9b8c4d020c84c818981bef8c34 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Thu, 11 Nov 2021 10:02:58 +0100 Subject: [PATCH 109/130] Fix its_number_of_patches returning bool instead of size_t --- src/libslic3r/TriangleMesh.cpp | 4 ++-- src/libslic3r/TriangleMesh.hpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index efd8e97f71..b33dd38cc5 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -1190,11 +1190,11 @@ std::vector its_split(const indexed_triangle_set &its) } // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its) +size_t its_number_of_patches(const indexed_triangle_set &its) { return its_number_of_patches<>(its); } -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) { return its_number_of_patches<>(ItsNeighborsWrapper{ its, face_neighbors }); } diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index 951e351fee..459917ab92 100644 --- a/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp @@ -219,8 +219,8 @@ std::vector its_split(const indexed_triangle_set &its); std::vector its_split(const indexed_triangle_set &its, std::vector &face_neighbors); // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its); -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); +size_t its_number_of_patches(const indexed_triangle_set &its); +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); // Same as its_number_of_patches(its) > 1, but faster. bool its_is_splittable(const indexed_triangle_set &its); bool its_is_splittable(const indexed_triangle_set &its, const std::vector &face_neighbors); From 117302ba22aa540cc020e1e5eb77422801627c29 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 11 Nov 2021 10:11:03 +0100 Subject: [PATCH 110/130] medical --- src/PrusaSlicer.cpp | 8 ++++++++ src/slic3r/GUI/BitmapCache.cpp | 6 ++++-- src/slic3r/GUI/BitmapCache.hpp | 3 ++- src/slic3r/GUI/GUI_App.cpp | 5 +++-- src/slic3r/GUI/GUI_App.hpp | 4 +++- src/slic3r/GUI/GUI_Init.cpp | 2 +- src/slic3r/GUI/GUI_Init.hpp | 1 + src/slic3r/GUI/MainFrame.cpp | 2 ++ src/slic3r/GUI/ObjectDataViewModel.cpp | 2 +- src/slic3r/GUI/PresetComboBoxes.cpp | 2 +- src/slic3r/GUI/UnsavedChangesDialog.cpp | 2 +- src/slic3r/GUI/wxExtensions.cpp | 4 ++-- 12 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 41d5231f16..360c04aab0 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -117,6 +117,13 @@ int CLI::run(int argc, char **argv) // On Unix systems, the prusa-slicer binary may be symlinked to give the application a different meaning. boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), "gcodeviewer"); #endif // _WIN32 + bool start_as_medical = + boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), +#ifdef _WIN32 + "-medical.exe"); +#else + "-medical"); +#endif // _WIN32 const std::vector &load_configs = m_config.option("load", true)->values; const ForwardCompatibilitySubstitutionRule config_substitution_rule = m_config.option>("config_compatibility", true)->value; @@ -602,6 +609,7 @@ int CLI::run(int argc, char **argv) params.extra_config = std::move(m_extra_config); params.input_files = std::move(m_input_files); params.start_as_gcodeviewer = start_as_gcodeviewer; + params.start_as_medical = start_as_medical; return Slic3r::GUI::GUI_Run(params); #else // SLIC3R_GUI // No GUI support. Just print out a help. diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 749fc5ef28..350a98e67d 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -20,7 +20,7 @@ namespace Slic3r { namespace GUI { -BitmapCache::BitmapCache() +BitmapCache::BitmapCache(bool medical) : m_medical(medical) { #ifdef __APPLE__ // Note: win->GetContentScaleFactor() is not used anymore here because it tends to @@ -280,7 +280,9 @@ wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_ if (dark_mode) replaces["#808080"] = "#FFFFFF"; if (!new_color.empty()) - replaces["#ED6B21"] = new_color; + replaces[m_medical ? "#5EA796" : "#ED6B21"] = new_color; + if (m_medical) + replaces["#ED6B21"] = "#5EA796"; NSVGimage *image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index 5fa8643b5a..654e4da755 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -14,7 +14,7 @@ namespace Slic3r { namespace GUI { class BitmapCache { public: - BitmapCache(); + BitmapCache(bool medical); ~BitmapCache() { clear(); } void clear(); double scale() { return m_scale; } @@ -42,6 +42,7 @@ public: static bool parse_color(const std::string& scolor, unsigned char* rgb_out); private: + bool m_medical; std::map m_map; double m_gs = 0.2; // value, used for image.ConvertToGreyscale(m_gs, m_gs, m_gs) double m_scale = 1.0; // value, used for correct scaling of SVG icons on Retina display diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index ad611114e4..c4683bb5a2 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -195,7 +195,7 @@ public: int width = lround(bmp.GetWidth() * 0.4); // load bitmap for logo - BitmapCache bmp_cache; + BitmapCache bmp_cache { wxGetApp().is_medical() }; int logo_size = lround(width * 0.25); wxBitmap logo_bmp = *bmp_cache.load_svg(wxGetApp().logo_name(), logo_size, logo_size); @@ -758,9 +758,10 @@ void GUI_App::post_init() IMPLEMENT_APP(GUI_App) -GUI_App::GUI_App(EAppMode mode) +GUI_App::GUI_App(EAppMode mode, bool medical) : wxApp() , m_app_mode(mode) + , m_medical(medical) , m_em_unit(10) , m_imgui(new ImGuiWrapper()) , m_removable_drive_manager(std::make_unique()) diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 1d281cafef..117f51a170 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -113,6 +113,7 @@ private: bool m_initialized { false }; bool m_app_conf_exists{ false }; EAppMode m_app_mode{ EAppMode::Editor }; + bool m_medical { false }; bool m_is_recreating_gui{ false }; #ifdef __linux__ bool m_opengl_initialized{ false }; @@ -159,12 +160,13 @@ public: bool OnInit() override; bool initialized() const { return m_initialized; } - explicit GUI_App(EAppMode mode = EAppMode::Editor); + explicit GUI_App(EAppMode mode = EAppMode::Editor, bool medical = false); ~GUI_App() override; EAppMode get_app_mode() const { return m_app_mode; } bool is_editor() const { return m_app_mode == EAppMode::Editor; } bool is_gcode_viewer() const { return m_app_mode == EAppMode::GCodeViewer; } + bool is_medical() const { return m_medical; } bool is_recreating_gui() const { return m_is_recreating_gui; } std::string logo_name() const { return is_editor() ? "PrusaSlicer" : "PrusaSlicer-gcodeviewer"; } diff --git a/src/slic3r/GUI/GUI_Init.cpp b/src/slic3r/GUI/GUI_Init.cpp index 92223a767d..7602476e9e 100644 --- a/src/slic3r/GUI/GUI_Init.cpp +++ b/src/slic3r/GUI/GUI_Init.cpp @@ -37,7 +37,7 @@ int GUI_Run(GUI_InitParams ¶ms) #endif // __APPLE__ try { - GUI::GUI_App* gui = new GUI::GUI_App(params.start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor); + GUI::GUI_App* gui = new GUI::GUI_App(params.start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor, params.start_as_medical); if (gui->get_app_mode() != GUI::GUI_App::EAppMode::GCodeViewer) { // G-code viewer is currently not performing instance check, a new G-code viewer is started every time. bool gui_single_instance_setting = gui->app_config->get("single_instance") == "1"; diff --git a/src/slic3r/GUI/GUI_Init.hpp b/src/slic3r/GUI/GUI_Init.hpp index 2adf618a47..6b8ae468bc 100644 --- a/src/slic3r/GUI/GUI_Init.hpp +++ b/src/slic3r/GUI/GUI_Init.hpp @@ -21,6 +21,7 @@ struct GUI_InitParams std::vector input_files; bool start_as_gcodeviewer; + bool start_as_medical; }; int GUI_Run(GUI_InitParams ¶ms); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 799c4e7933..4312edf908 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -644,6 +644,8 @@ void MainFrame::update_title() #endif } } + if (wxGetApp().is_medical()) + boost::replace_first(build_id, "PrusaSlicer", "PrusaSlicer-medical"); title += wxString(build_id); if (wxGetApp().is_editor()) diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index ed4b477b81..bba6c6a807 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -322,7 +322,7 @@ static int get_root_idx(ObjectDataViewModelNode *parent_node, const ItemType roo ObjectDataViewModel::ObjectDataViewModel() { - m_bitmap_cache = new Slic3r::GUI::BitmapCache; + m_bitmap_cache = new Slic3r::GUI::BitmapCache { wxGetApp().is_medical() }; m_volume_bmps = MenuFactory::get_volume_bitmaps(); m_warning_bmp = create_scaled_bitmap(WarningIcon); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index acae695d2e..12a905404f 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -150,7 +150,7 @@ PresetComboBox::~PresetComboBox() BitmapCache& PresetComboBox::bitmap_cache() { - static BitmapCache bmps; + static BitmapCache bmps { wxGetApp().is_medical() }; return bmps; } diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index ffa47ed631..c229274952 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -123,7 +123,7 @@ wxBitmap ModelNode::get_bitmap(const wxString& color) const int icon_width = lround(6.4 * em); const int icon_height = lround(1.6 * em); - BitmapCache bmp_cache; + BitmapCache bmp_cache { wxGetApp().is_medical() }; unsigned char rgb[3]; BitmapCache::parse_color(into_u8(color), rgb); // there is no need to scale created solid bitmap diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 01a553a81a..98146c9626 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -432,7 +432,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, const std::string& new_color/* = std::string()*/, // color witch will used instead of orange const bool menu_bitmap/* = false*/) { - static Slic3r::GUI::BitmapCache cache; + static Slic3r::GUI::BitmapCache cache { Slic3r::GUI::wxGetApp().is_medical() }; unsigned int width = 0; unsigned int height = (unsigned int)(em_unit(win) * px_cnt * 0.1f + 0.5f); @@ -462,7 +462,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, std::vector get_extruder_color_icons(bool thin_icon/* = false*/) { - static Slic3r::GUI::BitmapCache bmp_cache; + static Slic3r::GUI::BitmapCache bmp_cache { Slic3r::GUI::wxGetApp().is_medical() }; // Create the bitmap with color bars. std::vector bmps; From a0e6c7a076c2b63eb5027757a8d398a8715152b4 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 11 Nov 2021 10:30:47 +0100 Subject: [PATCH 111/130] Follow up https://github.com/prusa3d/PrusaSlicer/commit/a3f6ce1ac6a37c10e078672215c93bc0d705cab0 --- src/slic3r/GUI/MsgDialog.cpp | 8 ++--- src/slic3r/GUI/MsgDialog.hpp | 2 +- src/slic3r/GUI/PrintHostDialogs.cpp | 16 +++------ src/slic3r/GUI/UpdateDialogs.cpp | 52 +++++++++-------------------- 4 files changed, 25 insertions(+), 53 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 1cf5224174..961dfb5f3b 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -63,9 +63,9 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he SetSizerAndFit(main_sizer); } -void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) +void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/, const wxString& label/* = wxString()*/) { - wxButton* btn = new wxButton(this, btn_id); + wxButton* btn = new wxButton(this, btn_id, label); if (set_focus) btn->SetFocus(); btn_sizer->Add(btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, HORIZ_SPACING); @@ -75,7 +75,7 @@ void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) void MsgDialog::apply_style(long style) { if (style & wxOK) add_btn(wxID_OK, true); - if (style & wxYES) add_btn(wxID_YES); + if (style & wxYES) add_btn(wxID_YES, true); if (style & wxNO) add_btn(wxID_NO); if (style & wxCANCEL) add_btn(wxID_CANCEL); @@ -118,7 +118,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); wxFont monospace = wxGetApp().code_font(); wxColour text_clr = wxGetApp().get_label_clr_default(); - wxColour bgr_clr = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); + wxColour bgr_clr = parent->GetBackgroundColour(); //wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); auto text_clr_str = wxString::Format(wxT("#%02X%02X%02X"), text_clr.Red(), text_clr.Green(), text_clr.Blue()); auto bgr_clr_str = wxString::Format(wxT("#%02X%02X%02X"), bgr_clr.Red(), bgr_clr.Green(), bgr_clr.Blue()); const int font_size = font.GetPointSize(); diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index e49c29b857..b2d0a157bc 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -43,7 +43,7 @@ protected: MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, long style = wxOK, wxBitmap bitmap = wxNullBitmap); - void add_btn(wxWindowID btn_id, bool set_focus = false); + void add_btn(wxWindowID btn_id, bool set_focus = false, const wxString& label = wxString()); void apply_style(long style); void finalize(); diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 4fd45f380a..313df2f77d 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -39,7 +39,7 @@ static const char *CONFIG_KEY_PRINT = "printhost_print"; static const char *CONFIG_KEY_GROUP = "printhost_group"; PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_print, const wxArrayString &groups) - : MsgDialog(static_cast(wxGetApp().mainframe), _L("Send G-Code to printer host"), _L("Upload to Printer Host with the following filename:"), wxID_NONE) + : MsgDialog(static_cast(wxGetApp().mainframe), _L("Send G-Code to printer host"), _L("Upload to Printer Host with the following filename:"), wxOK | wxCANCEL) , txt_filename(new wxTextCtrl(this, wxID_ANY)) , box_print(can_start_print ? new wxCheckBox(this, wxID_ANY, _L("Start printing after upload")) : nullptr) , combo_groups(!groups.IsEmpty() ? new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, groups, wxCB_READONLY) : nullptr) @@ -70,10 +70,6 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_pr combo_groups->SetValue(recent_group); } - auto* szr = CreateStdDialogButtonSizer(wxOK | wxCANCEL); - auto* btn_ok = szr->GetAffirmativeButton(); - btn_sizer->Add(szr); - wxString recent_path = from_u8(app_config->get("recent", CONFIG_KEY_PATH)); if (recent_path.Length() > 0 && recent_path[recent_path.Length() - 1] != '/') { recent_path += '/'; @@ -88,23 +84,19 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_pr wxString suffix = recent_path.substr(recent_path.find_last_of('.')); - btn_ok->Bind(wxEVT_BUTTON, [this, suffix](wxCommandEvent&) { + static_cast(FindWindowById(wxID_OK, this))->Bind(wxEVT_BUTTON, [this, suffix](wxCommandEvent&) { wxString path = txt_filename->GetValue(); // .gcode suffix control if (!path.Lower().EndsWith(suffix.Lower())) { - //wxMessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO); MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO); if (msg_wingow.ShowModal() == wxID_NO) return; } EndDialog(wxID_OK); - }); + }); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); - CenterOnParent(); + finalize(); #ifdef __linux__ // On Linux with GTK2 when text control lose the focus then selection (colored background) disappears but text color stay white diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index 552ca43be1..5f09ffe307 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -89,7 +89,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ MsgDialog(nullptr, force_before_wizard ? _L("Opening Configuration Wizard") : _L("Configuration update"), force_before_wizard ? _L("PrusaSlicer is not using the newest configuration available.\n" "Configuration Wizard may not offer the latest printers, filaments and SLA materials to be installed. ") : - _L("Configuration update is available"), wxID_NONE) + _L("Configuration update is available"), wxOK) { auto *text = new wxStaticText(this, wxID_ANY, _(L( "Would you like to install it?\n\n" @@ -133,22 +133,14 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ content_sizer->Add(versions); content_sizer->AddSpacer(2*VERT_SPACING); - auto* btn_ok = new wxButton(this, wxID_OK, force_before_wizard ? _L("Install") : "OK"); - btn_sizer->Add(btn_ok); - btn_sizer->AddSpacer(HORIZ_SPACING); + add_btn(wxID_OK, true, force_before_wizard ? _L("Install") : "OK"); if (force_before_wizard) { - auto* btn_no_install = new wxButton(this, wxID_ANY, "Don't install"); - btn_no_install->Bind(wxEVT_BUTTON, [this](wxEvent&) { this->EndModal(wxID_CLOSE); }); - btn_sizer->Add(btn_no_install); - btn_sizer->AddSpacer(HORIZ_SPACING); + add_btn(wxID_CLOSE, false, _L("Don't install")); + static_cast(FindWindowById(wxID_CLOSE, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent&) { this->EndModal(wxID_CLOSE); }); } - auto* btn_cancel = new wxButton(this, wxID_CANCEL); - btn_sizer->Add(btn_cancel); - btn_ok->SetFocus(); + add_btn(wxID_CANCEL); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgUpdateConfig::~MsgUpdateConfig() {} @@ -156,7 +148,7 @@ MsgUpdateConfig::~MsgUpdateConfig() {} //MsgUpdateForced MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : - MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxICON_ERROR) + MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxOK | wxICON_ERROR) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "%s will now start updates. Otherwise it won't be able to start.\n\n" @@ -197,17 +189,10 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : content_sizer->Add(versions); content_sizer->AddSpacer(2 * VERT_SPACING); - - auto* btn_exit = new wxButton(this, wxID_EXIT, wxString::Format(_(L("Exit %s")), SLIC3R_APP_NAME)); - btn_sizer->Add(btn_exit); - btn_sizer->AddSpacer(HORIZ_SPACING); - auto* btn_ok = new wxButton(this, wxID_OK); - btn_sizer->Add(btn_ok); - btn_ok->SetFocus(); - auto exiter = [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }; - btn_exit->Bind(wxEVT_BUTTON, exiter); - btn_ok->Bind(wxEVT_BUTTON, exiter); + add_btn(wxID_EXIT, false, wxString::Format(_L("Exit %s"), SLIC3R_APP_NAME)); + for (auto ID : { wxID_EXIT, wxID_OK }) + static_cast(FindWindowById(ID, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }); finalize(); } @@ -218,7 +203,7 @@ MsgUpdateForced::~MsgUpdateForced() {} MsgDataIncompatible::MsgDataIncompatible(const std::unordered_map &incompats) : MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), - wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), /*wxID_NONE | */wxICON_ERROR) + wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), wxICON_ERROR) { auto *text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "This version of %s is not compatible with currently installed configuration bundles.\n" @@ -251,16 +236,11 @@ MsgDataIncompatible::MsgDataIncompatible(const std::unordered_mapAdd(versions); content_sizer->AddSpacer(2*VERT_SPACING); - auto *btn_exit = new wxButton(this, wxID_EXIT, wxString::Format(_(L("Exit %s")), SLIC3R_APP_NAME)); - btn_sizer->Add(btn_exit); - btn_sizer->AddSpacer(HORIZ_SPACING); - auto *btn_reconf = new wxButton(this, wxID_REPLACE, _(L("Re-configure"))); - btn_sizer->Add(btn_reconf); - btn_exit->SetFocus(); + add_btn(wxID_REPLACE, true, _L("Re-configure")); + add_btn(wxID_EXIT, false, wxString::Format(_L("Exit %s"), SLIC3R_APP_NAME)); - auto exiter = [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }; - btn_exit->Bind(wxEVT_BUTTON, exiter); - btn_reconf->Bind(wxEVT_BUTTON, exiter); + for (auto ID : {wxID_EXIT, wxID_REPLACE}) + static_cast(FindWindowById(ID, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }); finalize(); } @@ -309,7 +289,7 @@ MsgDataLegacy::~MsgDataLegacy() {} // MsgNoUpdate MsgNoUpdates::MsgNoUpdates() : - MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available")), wxICON_ERROR) + MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available")), wxICON_ERROR | wxOK) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format( From 17686b48145372112bb8b5c4e68c62dfcbfa9a5a Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Thu, 11 Nov 2021 11:12:03 +0100 Subject: [PATCH 112/130] Slight performance boost follow up to f7db7c0 --- src/libslic3r/Model.cpp | 2 +- src/libslic3r/Model.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 55ca4b8da3..fec6e422c1 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1893,7 +1893,7 @@ size_t ModelVolume::split(unsigned int max_extruders) // discard volumes for which the convex hull was not generated or is degenerate size_t i = 0; while (i < this->object->volumes.size()) { - std::shared_ptr hull = this->object->volumes[i]->get_convex_hull_shared_ptr(); + const std::shared_ptr &hull = this->object->volumes[i]->get_convex_hull_shared_ptr(); if (hull == nullptr || hull->its.vertices.empty() || hull->its.indices.empty()) { this->object->delete_volume(i); --idx; diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index e47ebda39a..3e11336afb 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -684,7 +684,7 @@ public: void calculate_convex_hull(); const TriangleMesh& get_convex_hull() const; - std::shared_ptr get_convex_hull_shared_ptr() const { return m_convex_hull; } + const std::shared_ptr& get_convex_hull_shared_ptr() const { return m_convex_hull; } // Get count of errors in the mesh int get_repaired_errors_count() const; From 3a9327753160e8cc99d36c6a168cce82099fb5a3 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 11 Nov 2021 11:22:57 +0100 Subject: [PATCH 113/130] Revert "medical" This reverts commit 117302ba22aa540cc020e1e5eb77422801627c29. --- src/PrusaSlicer.cpp | 8 -------- src/slic3r/GUI/BitmapCache.cpp | 6 ++---- src/slic3r/GUI/BitmapCache.hpp | 3 +-- src/slic3r/GUI/GUI_App.cpp | 5 ++--- src/slic3r/GUI/GUI_App.hpp | 4 +--- src/slic3r/GUI/GUI_Init.cpp | 2 +- src/slic3r/GUI/GUI_Init.hpp | 1 - src/slic3r/GUI/MainFrame.cpp | 2 -- src/slic3r/GUI/ObjectDataViewModel.cpp | 2 +- src/slic3r/GUI/PresetComboBoxes.cpp | 2 +- src/slic3r/GUI/UnsavedChangesDialog.cpp | 2 +- src/slic3r/GUI/wxExtensions.cpp | 4 ++-- 12 files changed, 12 insertions(+), 29 deletions(-) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 360c04aab0..41d5231f16 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -117,13 +117,6 @@ int CLI::run(int argc, char **argv) // On Unix systems, the prusa-slicer binary may be symlinked to give the application a different meaning. boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), "gcodeviewer"); #endif // _WIN32 - bool start_as_medical = - boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), -#ifdef _WIN32 - "-medical.exe"); -#else - "-medical"); -#endif // _WIN32 const std::vector &load_configs = m_config.option("load", true)->values; const ForwardCompatibilitySubstitutionRule config_substitution_rule = m_config.option>("config_compatibility", true)->value; @@ -609,7 +602,6 @@ int CLI::run(int argc, char **argv) params.extra_config = std::move(m_extra_config); params.input_files = std::move(m_input_files); params.start_as_gcodeviewer = start_as_gcodeviewer; - params.start_as_medical = start_as_medical; return Slic3r::GUI::GUI_Run(params); #else // SLIC3R_GUI // No GUI support. Just print out a help. diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 350a98e67d..749fc5ef28 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -20,7 +20,7 @@ namespace Slic3r { namespace GUI { -BitmapCache::BitmapCache(bool medical) : m_medical(medical) +BitmapCache::BitmapCache() { #ifdef __APPLE__ // Note: win->GetContentScaleFactor() is not used anymore here because it tends to @@ -280,9 +280,7 @@ wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_ if (dark_mode) replaces["#808080"] = "#FFFFFF"; if (!new_color.empty()) - replaces[m_medical ? "#5EA796" : "#ED6B21"] = new_color; - if (m_medical) - replaces["#ED6B21"] = "#5EA796"; + replaces["#ED6B21"] = new_color; NSVGimage *image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index 654e4da755..5fa8643b5a 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -14,7 +14,7 @@ namespace Slic3r { namespace GUI { class BitmapCache { public: - BitmapCache(bool medical); + BitmapCache(); ~BitmapCache() { clear(); } void clear(); double scale() { return m_scale; } @@ -42,7 +42,6 @@ public: static bool parse_color(const std::string& scolor, unsigned char* rgb_out); private: - bool m_medical; std::map m_map; double m_gs = 0.2; // value, used for image.ConvertToGreyscale(m_gs, m_gs, m_gs) double m_scale = 1.0; // value, used for correct scaling of SVG icons on Retina display diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index c4683bb5a2..ad611114e4 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -195,7 +195,7 @@ public: int width = lround(bmp.GetWidth() * 0.4); // load bitmap for logo - BitmapCache bmp_cache { wxGetApp().is_medical() }; + BitmapCache bmp_cache; int logo_size = lround(width * 0.25); wxBitmap logo_bmp = *bmp_cache.load_svg(wxGetApp().logo_name(), logo_size, logo_size); @@ -758,10 +758,9 @@ void GUI_App::post_init() IMPLEMENT_APP(GUI_App) -GUI_App::GUI_App(EAppMode mode, bool medical) +GUI_App::GUI_App(EAppMode mode) : wxApp() , m_app_mode(mode) - , m_medical(medical) , m_em_unit(10) , m_imgui(new ImGuiWrapper()) , m_removable_drive_manager(std::make_unique()) diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 117f51a170..1d281cafef 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -113,7 +113,6 @@ private: bool m_initialized { false }; bool m_app_conf_exists{ false }; EAppMode m_app_mode{ EAppMode::Editor }; - bool m_medical { false }; bool m_is_recreating_gui{ false }; #ifdef __linux__ bool m_opengl_initialized{ false }; @@ -160,13 +159,12 @@ public: bool OnInit() override; bool initialized() const { return m_initialized; } - explicit GUI_App(EAppMode mode = EAppMode::Editor, bool medical = false); + explicit GUI_App(EAppMode mode = EAppMode::Editor); ~GUI_App() override; EAppMode get_app_mode() const { return m_app_mode; } bool is_editor() const { return m_app_mode == EAppMode::Editor; } bool is_gcode_viewer() const { return m_app_mode == EAppMode::GCodeViewer; } - bool is_medical() const { return m_medical; } bool is_recreating_gui() const { return m_is_recreating_gui; } std::string logo_name() const { return is_editor() ? "PrusaSlicer" : "PrusaSlicer-gcodeviewer"; } diff --git a/src/slic3r/GUI/GUI_Init.cpp b/src/slic3r/GUI/GUI_Init.cpp index 7602476e9e..92223a767d 100644 --- a/src/slic3r/GUI/GUI_Init.cpp +++ b/src/slic3r/GUI/GUI_Init.cpp @@ -37,7 +37,7 @@ int GUI_Run(GUI_InitParams ¶ms) #endif // __APPLE__ try { - GUI::GUI_App* gui = new GUI::GUI_App(params.start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor, params.start_as_medical); + GUI::GUI_App* gui = new GUI::GUI_App(params.start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor); if (gui->get_app_mode() != GUI::GUI_App::EAppMode::GCodeViewer) { // G-code viewer is currently not performing instance check, a new G-code viewer is started every time. bool gui_single_instance_setting = gui->app_config->get("single_instance") == "1"; diff --git a/src/slic3r/GUI/GUI_Init.hpp b/src/slic3r/GUI/GUI_Init.hpp index 6b8ae468bc..2adf618a47 100644 --- a/src/slic3r/GUI/GUI_Init.hpp +++ b/src/slic3r/GUI/GUI_Init.hpp @@ -21,7 +21,6 @@ struct GUI_InitParams std::vector input_files; bool start_as_gcodeviewer; - bool start_as_medical; }; int GUI_Run(GUI_InitParams ¶ms); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 4312edf908..799c4e7933 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -644,8 +644,6 @@ void MainFrame::update_title() #endif } } - if (wxGetApp().is_medical()) - boost::replace_first(build_id, "PrusaSlicer", "PrusaSlicer-medical"); title += wxString(build_id); if (wxGetApp().is_editor()) diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index bba6c6a807..ed4b477b81 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -322,7 +322,7 @@ static int get_root_idx(ObjectDataViewModelNode *parent_node, const ItemType roo ObjectDataViewModel::ObjectDataViewModel() { - m_bitmap_cache = new Slic3r::GUI::BitmapCache { wxGetApp().is_medical() }; + m_bitmap_cache = new Slic3r::GUI::BitmapCache; m_volume_bmps = MenuFactory::get_volume_bitmaps(); m_warning_bmp = create_scaled_bitmap(WarningIcon); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 12a905404f..acae695d2e 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -150,7 +150,7 @@ PresetComboBox::~PresetComboBox() BitmapCache& PresetComboBox::bitmap_cache() { - static BitmapCache bmps { wxGetApp().is_medical() }; + static BitmapCache bmps; return bmps; } diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index c229274952..ffa47ed631 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -123,7 +123,7 @@ wxBitmap ModelNode::get_bitmap(const wxString& color) const int icon_width = lround(6.4 * em); const int icon_height = lround(1.6 * em); - BitmapCache bmp_cache { wxGetApp().is_medical() }; + BitmapCache bmp_cache; unsigned char rgb[3]; BitmapCache::parse_color(into_u8(color), rgb); // there is no need to scale created solid bitmap diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 98146c9626..01a553a81a 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -432,7 +432,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, const std::string& new_color/* = std::string()*/, // color witch will used instead of orange const bool menu_bitmap/* = false*/) { - static Slic3r::GUI::BitmapCache cache { Slic3r::GUI::wxGetApp().is_medical() }; + static Slic3r::GUI::BitmapCache cache; unsigned int width = 0; unsigned int height = (unsigned int)(em_unit(win) * px_cnt * 0.1f + 0.5f); @@ -462,7 +462,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, std::vector get_extruder_color_icons(bool thin_icon/* = false*/) { - static Slic3r::GUI::BitmapCache bmp_cache { Slic3r::GUI::wxGetApp().is_medical() }; + static Slic3r::GUI::BitmapCache bmp_cache; // Create the bitmap with color bars. std::vector bmps; From d599c854777c49d2da001e98758134472487493c Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 11 Nov 2021 11:31:34 +0100 Subject: [PATCH 114/130] Fixed typo in https://github.com/prusa3d/PrusaSlicer/commit/a0e6c7a076c2b63eb5027757a8d398a8715152b4 --- src/slic3r/GUI/UpdateDialogs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index 5f09ffe307..b929141a04 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -89,7 +89,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ MsgDialog(nullptr, force_before_wizard ? _L("Opening Configuration Wizard") : _L("Configuration update"), force_before_wizard ? _L("PrusaSlicer is not using the newest configuration available.\n" "Configuration Wizard may not offer the latest printers, filaments and SLA materials to be installed. ") : - _L("Configuration update is available"), wxOK) + _L("Configuration update is available"), wxICON_ERROR) { auto *text = new wxStaticText(this, wxID_ANY, _(L( "Would you like to install it?\n\n" From 93347f0452bdee3a6bfc5023af533cda97c1707f Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Thu, 11 Nov 2021 13:03:40 +0100 Subject: [PATCH 115/130] Close Shape Gallery dialog by pressing ESC on keyboard --- src/slic3r/GUI/GalleryDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GalleryDialog.cpp b/src/slic3r/GUI/GalleryDialog.cpp index f5e3083a78..2aba75fbac 100644 --- a/src/slic3r/GUI/GalleryDialog.cpp +++ b/src/slic3r/GUI/GalleryDialog.cpp @@ -101,7 +101,7 @@ GalleryDialog::GalleryDialog(wxWindow* parent, bool modify_gallery/* = false*/) ok_btn->SetToolTip(_L("Add selected shape(s) to the bed")); } static_cast(FindWindowById(wxID_CLOSE, this))->Bind(wxEVT_BUTTON, [this](wxCommandEvent&){ this->EndModal(wxID_CLOSE); }); - + this->SetEscapeId(wxID_CLOSE); auto add_btn = [this, buttons]( size_t pos, int& ID, wxString title, wxString tooltip, void (GalleryDialog::* method)(wxEvent&), std::function enable_fn = []() {return true; }) { From e324643a04b81e3e4a7607a6b7fdd50a7c3d0729 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Thu, 11 Nov 2021 17:07:35 +0100 Subject: [PATCH 116/130] Fix hanging status indication if a UI job gets started over another.. --- src/slic3r/GUI/Jobs/Job.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/slic3r/GUI/Jobs/Job.cpp b/src/slic3r/GUI/Jobs/Job.cpp index 7590f2d420..9d0d4bc80c 100644 --- a/src/slic3r/GUI/Jobs/Job.cpp +++ b/src/slic3r/GUI/Jobs/Job.cpp @@ -48,6 +48,9 @@ GUI::Job::Job(std::shared_ptr pri) if (evt.GetInt() == status_range() || m_worker_error) { // set back the original range and cancel callback m_progress->set_range(m_range); + // Make sure progress indicators get the last value of their range + // to make sure they close, fade out, whathever + m_progress->set_progress(m_range); m_progress->set_cancel_callback(); wxEndBusyCursor(); From 217bcfd37d964f147b8fcf549e1b0fb2ef2912bd Mon Sep 17 00:00:00 2001 From: David Kocik Date: Thu, 11 Nov 2021 17:01:43 +0100 Subject: [PATCH 117/130] SLA only mode in wizard Activates only if PrusaSlicer.ini does NOT contains any FFF printers. Added only_default_printers() function to activate wizard if none printers are installed. --- src/libslic3r/Preset.cpp | 8 +++ src/libslic3r/Preset.hpp | 1 + src/slic3r/GUI/ConfigWizard.cpp | 74 +++++++++++++++---------- src/slic3r/GUI/ConfigWizard_private.hpp | 7 ++- src/slic3r/GUI/GUI_App.cpp | 2 +- 5 files changed, 62 insertions(+), 30 deletions(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 0487ddaec7..eff6c8a8dc 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1379,6 +1379,14 @@ const Preset* PrinterPresetCollection::find_system_preset_by_model_and_variant(c return it != cend() ? &*it : nullptr; } +bool PrinterPresetCollection::only_default_printers() const +{ + for (const auto& printer : get_presets()) { + if (!boost::starts_with(printer.name,"- default")) + return false; + } + return true; +} // ------------------------- // *** PhysicalPrinter *** // ------------------------- diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 849dd7b809..6764b197d1 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -597,6 +597,7 @@ public: const Preset* find_system_preset_by_model_and_variant(const std::string &model_id, const std::string &variant) const; + bool only_default_printers() const; private: PrinterPresetCollection() = default; PrinterPresetCollection(const PrinterPresetCollection &other) = default; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 737c14317a..04cb7d5582 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -559,7 +559,9 @@ PagePrinters::PagePrinters(ConfigWizard *parent, append(picker); printer_pickers.push_back(picker); + has_printers = true; } + } void PagePrinters::select_all(bool select, bool alternates) @@ -599,7 +601,7 @@ std::set PagePrinters::get_selected_models() void PagePrinters::set_run_reason(ConfigWizard::RunReason run_reason) { - if (technology == T_FFF + if (is_primary_printer_page && (run_reason == ConfigWizard::RR_DATA_EMPTY || run_reason == ConfigWizard::RR_DATA_LEGACY) && printer_pickers.size() > 0 && printer_pickers[0]->vendor_id == PresetBundle::PRUSA_BUNDLE) { @@ -1904,25 +1906,28 @@ void ConfigWizard::priv::load_pages() index->add_page(page_welcome); // Printers - index->add_page(page_fff); + if (!only_sla_mode) + index->add_page(page_fff); index->add_page(page_msla); - index->add_page(page_vendors); - for (const auto &pages : pages_3rdparty) { - for ( PagePrinters* page : { pages.second.first, pages.second.second }) - if (page && page->install) - index->add_page(page); - } - - index->add_page(page_custom); - if (page_custom->custom_wanted()) { - index->add_page(page_firmware); - index->add_page(page_bed); - index->add_page(page_diams); - index->add_page(page_temps); - } + if (!only_sla_mode) { + index->add_page(page_vendors); + for (const auto &pages : pages_3rdparty) { + for ( PagePrinters* page : { pages.second.first, pages.second.second }) + if (page && page->install) + index->add_page(page); + } + index->add_page(page_custom); + if (page_custom->custom_wanted()) { + index->add_page(page_firmware); + index->add_page(page_bed); + index->add_page(page_diams); + index->add_page(page_temps); + } + // Filaments & Materials - if (any_fff_selected) { index->add_page(page_filaments); } + if (any_fff_selected) { index->add_page(page_filaments); } + } if (any_sla_selected) { index->add_page(page_sla_materials); } // there should to be selected at least one printer @@ -1956,7 +1961,7 @@ void ConfigWizard::priv::init_dialog_size() 9*disp_rect.width / 10, 9*disp_rect.height / 10); - const int width_hint = index->GetSize().GetWidth() + page_fff->get_width() + 30 * em(); // XXX: magic constant, I found no better solution + const int width_hint = index->GetSize().GetWidth() + std::max(90 * em(), (only_sla_mode ? page_msla->get_width() : page_fff->get_width()) + 30 * em()); // XXX: magic constant, I found no better solution if (width_hint < window_rect.width) { window_rect.x += (window_rect.width - width_hint) / 2; window_rect.width = width_hint; @@ -2725,7 +2730,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese preset_bundle->load_presets(*app_config, ForwardCompatibilitySubstitutionRule::EnableSilentDisableSystem, {preferred_model, preferred_variant, first_added_filament, first_added_sla_material}); - if (page_custom->custom_wanted()) { + if (!only_sla_mode && page_custom->custom_wanted()) { // if unsaved changes was not cheched till this moment if (!check_unsaved_preset_changes && !wxGetApp().check_and_keep_current_preset_changes(caption, _L("Custom printer was installed and it will be activated."), act_btns, &apply_keeped_changes)) @@ -2838,25 +2843,38 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->add_page(p->page_welcome = new PageWelcome(this)); + p->page_fff = new PagePrinters(this, _L("Prusa FFF Technology Printers"), "Prusa FFF", *vendor_prusa, 0, T_FFF); - p->add_page(p->page_fff); + p->only_sla_mode = !p->page_fff->has_printers; + if (!p->only_sla_mode) { + p->add_page(p->page_fff); + p->page_fff->is_primary_printer_page = true; + } + p->page_msla = new PagePrinters(this, _L("Prusa MSLA Technology Printers"), "Prusa MSLA", *vendor_prusa, 0, T_SLA); p->add_page(p->page_msla); + if (p->only_sla_mode) { + p->page_msla->is_primary_printer_page = true; + } - // Pages for 3rd party vendors - p->create_3rdparty_pages(); // Needs to be done _before_ creating PageVendors - p->add_page(p->page_vendors = new PageVendors(this)); - p->add_page(p->page_custom = new PageCustom(this)); - p->custom_printer_selected = p->page_custom->custom_wanted(); + if (!p->only_sla_mode) { + // Pages for 3rd party vendors + p->create_3rdparty_pages(); // Needs to be done _before_ creating PageVendors + p->add_page(p->page_vendors = new PageVendors(this)); + p->add_page(p->page_custom = new PageCustom(this)); + p->custom_printer_selected = p->page_custom->custom_wanted(); + } p->any_sla_selected = p->check_sla_selected(); - p->any_fff_selected = p->check_fff_selected(); + if (p->only_sla_mode) + p->any_fff_selected = p->check_fff_selected(); p->update_materials(T_ANY); + if (!p->only_sla_mode) + p->add_page(p->page_filaments = new PageMaterials(this, &p->filaments, + _L("Filament Profiles Selection"), _L("Filaments"), _L("Type:") )); - p->add_page(p->page_filaments = new PageMaterials(this, &p->filaments, - _L("Filament Profiles Selection"), _L("Filaments"), _L("Type:") )); p->add_page(p->page_sla_materials = new PageMaterials(this, &p->sla_materials, _L("SLA Material Profiles Selection") + " ", _L("SLA Materials"), _L("Type:") )); diff --git a/src/slic3r/GUI/ConfigWizard_private.hpp b/src/slic3r/GUI/ConfigWizard_private.hpp index d4b1fac040..c822a2be81 100644 --- a/src/slic3r/GUI/ConfigWizard_private.hpp +++ b/src/slic3r/GUI/ConfigWizard_private.hpp @@ -257,6 +257,9 @@ struct PagePrinters: ConfigWizardPage std::string get_vendor_id() const { return printer_pickers.empty() ? "" : printer_pickers[0]->vendor_id; } virtual void set_run_reason(ConfigWizard::RunReason run_reason) override; + + bool has_printers { false }; + bool is_primary_printer_page { false }; }; // Here we extend wxListBox and wxCheckListBox @@ -548,7 +551,9 @@ struct ConfigWizard::priv std::unique_ptr custom_config; // Backing for custom printer definition bool any_fff_selected; // Used to decide whether to display Filaments page bool any_sla_selected; // Used to decide whether to display SLA Materials page - bool custom_printer_selected; + bool custom_printer_selected { false }; + // Set to true if there are none FFF printers on the main FFF page. If true, only SLA printers are shown (not even custum printers) + bool only_sla_mode { false }; wxScrolledWindow *hscroll = nullptr; wxBoxSizer *hscroll_sizer = nullptr; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index ad611114e4..96d33d3b0d 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2879,7 +2879,7 @@ void GUI_App::window_pos_sanitize(wxTopLevelWindow* window) bool GUI_App::config_wizard_startup() { - if (!m_app_conf_exists || preset_bundle->printers.size() <= 1) { + if (!m_app_conf_exists || preset_bundle->printers.only_default_printers()) { run_wizard(ConfigWizard::RR_DATA_EMPTY); return true; } else if (get_app_config()->legacy_datadir()) { From 50ea144b84a6a20318d28557b93d210d949230dc Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Thu, 28 Oct 2021 00:45:14 +0200 Subject: [PATCH 118/130] Minor improvements: - const corectness - volatile -> std::atomic - GUI::format - encoding issues --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 38 +++++++++++------------ src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 10 +++--- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 9c1c4789f2..aecf564188 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -74,14 +74,10 @@ void GLGizmoSimplify::add_simplify_suggestion_notification( if (big_ids.empty()) return; for (size_t object_id : big_ids) { - std::string t = _u8L( - "Processing model '@object_name' with more than 1M triangles " + std::string t = GUI::format(_u8L( + "Processing model '%1%' with more than 1M triangles " "could be slow. It is highly recommend to reduce " - "amount of triangles."); - t.replace(t.find("@object_name"), sizeof("@object_name") - 1, - objects[object_id]->name); - // std::stringstream text; - // text << t << "\n"; + "amount of triangles."), objects[object_id]->name); std::string hypertext = _u8L("Simplify model"); std::function open_simplify = @@ -277,7 +273,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi bool is_canceling = m_state == State::canceling; m_imgui->disabled_begin(is_canceling); - if (m_imgui->button(_u8L("Cancel"))) { + if (m_imgui->button(_L("Cancel"))) { if (m_state == State::settings) { if (m_original_its.has_value()) { set_its(*m_original_its); @@ -296,7 +292,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi bool is_processing = m_state != State::settings; m_imgui->disabled_begin(is_processing); - if (m_imgui->button(_u8L("Apply"))) { + if (m_imgui->button(_L("Apply"))) { if (!m_is_valid_result) { m_state = State::close_on_end; process(); @@ -315,8 +311,9 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar char buf[32]; - sprintf(buf, L("Process %d / 100"), m_progress); - ImGui::ProgressBar(m_progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); + int progress = m_progress; + sprintf(buf, L("Process %d / 100"), progress); + ImGui::ProgressBar(progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); } m_imgui->end(); @@ -454,7 +451,7 @@ void GLGizmoSimplify::process() }); } -void GLGizmoSimplify::set_its(indexed_triangle_set &its) { +void GLGizmoSimplify::set_its(const indexed_triangle_set &its) { if (m_volume == nullptr) return; // could appear after process m_volume->set_mesh(its); m_volume->calculate_convex_hull(); @@ -543,12 +540,12 @@ void GLGizmoSimplify::set_center_position() { m_move_to_center = true; } -bool GLGizmoSimplify::exist_volume(ModelVolume *volume) { - auto objs = wxGetApp().plater()->model().objects; - for (const auto &obj : objs) { - const auto &vlms = obj->volumes; +bool GLGizmoSimplify::exist_volume(const ModelVolume *volume) { + for (const ModelObject* obj : wxGetApp().plater()->model().objects) { + const auto & vlms = obj->volumes; auto item = std::find(vlms.begin(), vlms.end(), volume); - if (item != vlms.end()) return true; + if (item != vlms.end()) + return true; } return false; } @@ -556,11 +553,12 @@ bool GLGizmoSimplify::exist_volume(ModelVolume *volume) { ModelVolume * GLGizmoSimplify::get_volume(const Selection &selection, Model &model) { const Selection::IndicesList& idxs = selection.get_volume_idxs(); - if (idxs.empty()) return nullptr; // only one selected volume - if (idxs.size() != 1) return nullptr; + if (idxs.size() != 1) + return nullptr; const GLVolume *selected_volume = selection.get_volume(*idxs.begin()); - if (selected_volume == nullptr) return nullptr; + if (selected_volume == nullptr) + return nullptr; const GLVolume::CompositeID &cid = selected_volume->composite_id; const ModelObjectPtrs& objs = model.objects; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index b978e9356d..ad954e29bb 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -53,7 +53,7 @@ private: void close(); void live_preview(); void process(); - void set_its(indexed_triangle_set &its); + void set_its(const indexed_triangle_set &its); void create_gui_cfg(); void request_rerender(); @@ -63,21 +63,21 @@ private: static const ModelVolume *get_volume(const GLVolume::CompositeID &cid, const Model &model); // return false when volume was deleted - static bool exist_volume(ModelVolume *volume); + static bool exist_volume(const ModelVolume *volume); std::atomic_bool m_is_valid_result; // differ what to do in apply std::atomic_bool m_exist_preview; // set when process end bool m_move_to_center; // opening gizmo - volatile int m_progress; // percent of done work + std::atomic m_progress; // percent of done work ModelVolume *m_volume; // keep pointer to actual working volume size_t m_obj_index; std::optional m_original_its; bool m_show_wireframe; - volatile bool m_need_reload; // after simplify, glReload must be on main thread + std::atomic m_need_reload; // after simplify, glReload must be on main thread std::thread m_worker; // wait before process @@ -90,7 +90,7 @@ private: close_on_end, // simplify with close on end canceling // after button click, before canceled }; - volatile State m_state; + std::atomic m_state; struct Configuration { From ba56a79795e4d28ca88a9972f7f5f003b942ac8f Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 29 Oct 2021 10:22:41 +0200 Subject: [PATCH 119/130] Simplify gizmo now renders the volume by itself, it does not rely on the usual GLVolume rendering. GLCanvas3D::toggle_model_object_visibility was extended to hide a single volume. Rendering the model and wireframe uses the same vertex buffer, which is now used through GLModel class. GLGizmoRenderTransparent class should no longer be needed. GLCanvas3D::reload_scene calls replaced with request_rerender. --- src/slic3r/GUI/GLCanvas3D.cpp | 11 +- src/slic3r/GUI/GLCanvas3D.hpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp | 17 ++- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 112 +++++++------------ src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 18 ++- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 2 +- 6 files changed, 63 insertions(+), 99 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 90e67cd8ac..3fde99119c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -24,6 +24,7 @@ #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/MainFrame.hpp" #include "slic3r/Utils/UndoRedo.hpp" +#include "slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" @@ -1143,7 +1144,7 @@ void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible, const ModelObje } } -void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject* mo, int instance_idx) +void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject* mo, int instance_idx, const ModelVolume* mv) { for (GLVolume* vol : m_volumes.volumes) { if (vol->composite_id.object_id == 1000) { // wipe tower @@ -1151,7 +1152,8 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject } else { if ((mo == nullptr || m_model->objects[vol->composite_id.object_id] == mo) - && (instance_idx == -1 || vol->composite_id.instance_id == instance_idx)) { + && (instance_idx == -1 || vol->composite_id.instance_id == instance_idx) + && (mv == nullptr || m_model->objects[vol->composite_id.object_id]->volumes[vol->composite_id.volume_id] == mv)) { vol->is_active = visible; if (instance_idx == -1) { @@ -5239,10 +5241,7 @@ void GLCanvas3D::_render_objects(GLVolumeCollection::ERenderType type) { const GLGizmosManager& gm = get_gizmos_manager(); GLGizmosManager::EType type = gm.get_current_type(); - if (type == GLGizmosManager::FdmSupports - || type == GLGizmosManager::Seam - || type == GLGizmosManager::MmuSegmentation - || type == GLGizmosManager::Simplify ) { + if (dynamic_cast(gm.get_current())) { shader->stop_using(); gm.render_painter_gizmo(); shader->start_using(); diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 71f7131003..2020360298 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -635,7 +635,7 @@ public: void update_gcode_sequential_view_current(unsigned int first, unsigned int last) { m_gcode_viewer.update_sequential_view_current(first, last); } void toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); - void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); + void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1, const ModelVolume* mv = nullptr); void update_instance_printable_state_for_object(size_t obj_idx); void update_instance_printable_state_for_objects(const std::vector& object_idxs); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index 819550c89d..2705f82d32 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -99,20 +99,11 @@ protected: GLPaintContour m_paint_contour; }; -class GLGizmoTransparentRender -{ -public: - // Following function renders the triangles and cursor. Having this separated - // from usual on_render method allows to render them before transparent - // objects, so they can be seen inside them. The usual on_render is called - // after all volumes (including transparent ones) are rendered. - virtual void render_painter_gizmo() const = 0; -}; // Following class is a base class for a gizmo with ability to paint on mesh // using circular blush (such as FDM supports gizmo and seam painting gizmo). // The purpose is not to duplicate code related to mesh painting. -class GLGizmoPainterBase : public GLGizmoTransparentRender, public GLGizmoBase +class GLGizmoPainterBase : public GLGizmoBase { private: ObjectID m_old_mo_id; @@ -125,6 +116,12 @@ public: virtual void set_painter_gizmo_data(const Selection& selection); virtual bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); + // Following function renders the triangles and cursor. Having this separated + // from usual on_render method allows to render them before transparent + // objects, so they can be seen inside them. The usual on_render is called + // after all volumes (including transparent ones) are rendered. + virtual void render_painter_gizmo() const = 0; + protected: virtual void render_triangles(const Selection& selection) const; void render_cursor() const; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index aecf564188..cbca708329 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -31,16 +31,12 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, , tr_preview(_u8L("Preview")) , tr_detail_level(_u8L("Detail level")) , tr_decimate_ratio(_u8L("Decimate ratio")) - // for wireframe - , m_wireframe_VBO_id(0) - , m_wireframe_IBO_id(0) - , m_wireframe_IBO_size(0) {} GLGizmoSimplify::~GLGizmoSimplify() { m_state = State::canceling; if (m_worker.joinable()) m_worker.join(); - free_gpu(); + m_glmodel.reset(); } bool GLGizmoSimplify::on_esc_key_down() { @@ -143,7 +139,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_configuration.fix_count_by_ratio(m_volume->mesh().its.indices.size()); m_is_valid_result = false; m_exist_preview = false; - init_wireframe(); + init_model(); live_preview(); // set window position @@ -266,10 +262,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::Text(_u8L("%d triangles").c_str(), m_configuration.wanted_count); m_imgui->disabled_end(); // use_count - if (ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe)) { - if (m_show_wireframe) init_wireframe(); - else free_gpu(); - } + ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe); bool is_canceling = m_state == State::canceling; m_imgui->disabled_begin(is_canceling); @@ -322,11 +315,11 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_need_reload = false; bool close_on_end = (m_state == State::close_on_end); // Reload visualization of mesh - change VBO, FBO on GPU - m_parent.reload_scene(true); + request_rerender(); // set m_state must be before close() !!! m_state = State::settings; if (close_on_end) after_apply(); - else init_wireframe(); + else init_model(); // Fix warning icon in object list wxGetApp().obj_list()->update_item_error_icon(m_obj_index, -1); } @@ -469,6 +462,8 @@ void GLGizmoSimplify::on_set_state() { // Closing gizmo. e.g. selecting another one if (GLGizmoBase::m_state == GLGizmoBase::Off) { + m_parent.toggle_model_objects_visibility(true); + // can appear when delete objects bool empty_selection = m_parent.get_selection().is_empty(); @@ -495,7 +490,7 @@ void GLGizmoSimplify::on_set_state() m_exist_preview = false; if (exist_volume(m_volume)) { set_its(*m_original_its); - m_parent.reload_scene(false); + request_rerender(); m_need_reload = false; } } @@ -581,44 +576,25 @@ const ModelVolume *GLGizmoSimplify::get_volume(const GLVolume::CompositeID &cid, return obj->volumes[cid.volume_id]; } -void GLGizmoSimplify::init_wireframe() +void GLGizmoSimplify::init_model() { - if (!m_show_wireframe) return; const indexed_triangle_set &its = m_volume->mesh().its; - free_gpu(); if (its.indices.empty()) return; - // vertices - glsafe(::glGenBuffers(1, &m_wireframe_VBO_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_VBO_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, - its.vertices.size() * 3 * sizeof(float), - its.vertices.data(), GL_STATIC_DRAW)); + m_glmodel.reset(); + m_glmodel.init_from(its); + m_parent.toggle_model_objects_visibility(false, m_c->selection_info()->model_object(), + m_c->selection_info()->get_active_instance(), m_volume); - // indices - std::vector contour_indices; - contour_indices.reserve((its.indices.size() * 3) / 2); - for (const auto &triangle : its.indices) { - for (size_t ti1 = 0; ti1 < 3; ++ti1) { - size_t ti2 = (ti1 == 2) ? 0 : (ti1 + 1); - if (triangle[ti1] > triangle[ti2]) continue; - contour_indices.emplace_back(triangle[ti1], triangle[ti2]); - } - } - glsafe(::glGenBuffers(1, &m_wireframe_IBO_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_IBO_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, - 2*contour_indices.size() * sizeof(coord_t), - contour_indices.data(), GL_STATIC_DRAW)); - m_wireframe_IBO_size = contour_indices.size() * 2; - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); + if (const Selection&sel = m_parent.get_selection(); sel.get_volume_idxs().size() == 1) + m_glmodel.set_color(-1, sel.get_volume(*sel.get_volume_idxs().begin())->color); } -void GLGizmoSimplify::render_wireframe() const +void GLGizmoSimplify::on_render() { // is initialized? - if (m_wireframe_VBO_id == 0 || m_wireframe_IBO_id == 0) return; - if (!m_show_wireframe) return; + if (! m_glmodel.is_initialized()) + return; const auto& selection = m_parent.get_selection(); const auto& volume_idxs = selection.get_volume_idxs(); @@ -633,39 +609,35 @@ void GLGizmoSimplify::render_wireframe() const glsafe(::glPushMatrix()); glsafe(::glMultMatrixd(trafo_matrix.data())); - auto *contour_shader = wxGetApp().get_shader("mm_contour"); - contour_shader->start_using(); - glsafe(::glDepthFunc(GL_LEQUAL)); - glsafe(::glLineWidth(1.0f)); + auto *gouraud_shader = wxGetApp().get_shader("gouraud_light"); + glsafe(::glPushAttrib(GL_DEPTH_TEST)); + glsafe(::glEnable(GL_DEPTH_TEST)); + gouraud_shader->start_using(); + m_glmodel.render(); + gouraud_shader->stop_using(); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_VBO_id)); - glsafe(::glVertexPointer(3, GL_FLOAT, 3 * sizeof(float), nullptr)); - glsafe(::glEnableClientState(GL_VERTEX_ARRAY)); + if (m_show_wireframe) { + auto* contour_shader = wxGetApp().get_shader("mm_contour"); + contour_shader->start_using(); + glsafe(::glLineWidth(1.0f)); + glsafe(::glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)); + //ScopeGuard offset_fill_guard([]() { glsafe(::glDisable(GL_POLYGON_OFFSET_FILL)); }); + //glsafe(::glEnable(GL_POLYGON_OFFSET_FILL)); + //glsafe(::glPolygonOffset(5.0, 5.0)); + m_glmodel.render(); + glsafe(::glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)); + contour_shader->stop_using(); + } - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_wireframe_IBO_id)); - glsafe(::glDrawElements(GL_LINES, m_wireframe_IBO_size, GL_UNSIGNED_INT, nullptr)); - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); - - glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); - - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); - glsafe(::glDepthFunc(GL_LESS)); - - glsafe(::glPopMatrix()); // pop trafo - contour_shader->stop_using(); + glsafe(::glPopAttrib()); + glsafe(::glPopMatrix()); } -void GLGizmoSimplify::free_gpu() -{ - if (m_wireframe_VBO_id != 0) { - glsafe(::glDeleteBuffers(1, &m_wireframe_VBO_id)); - m_wireframe_VBO_id = 0; - } - if (m_wireframe_IBO_id != 0) { - glsafe(::glDeleteBuffers(1, &m_wireframe_IBO_id)); - m_wireframe_IBO_id = 0; - } +CommonGizmosDataID GLGizmoSimplify::on_get_requirements() const +{ + return CommonGizmosDataID( + int(CommonGizmosDataID::SelectionInfo)); } } // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index ad954e29bb..979adfeba1 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -4,6 +4,7 @@ // Include GLGizmoBase.hpp before I18N.hpp as it includes some libigl code, // which overrides our localization "L" macro. #include "GLGizmoBase.hpp" +#include "slic3r/GUI/GLModel.hpp" #include "GLGizmoPainterBase.hpp" // for render wireframe #include "admesh/stl.h" // indexed_triangle_set #include @@ -24,7 +25,7 @@ class ModelVolume; namespace GUI { class NotificationManager; // for simplify suggestion -class GLGizmoSimplify: public GLGizmoBase, public GLGizmoTransparentRender // GLGizmoBase +class GLGizmoSimplify: public GLGizmoBase { public: GLGizmoSimplify(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id); @@ -43,11 +44,10 @@ protected: // must implement virtual bool on_init() override { return true;}; - virtual void on_render() override{}; + virtual void on_render() override; virtual void on_render_for_picking() override{}; - // GLGizmoPainterBase - virtual void render_painter_gizmo() const override{ render_wireframe(); } + virtual CommonGizmosDataID on_get_requirements() const; private: void after_apply(); void close(); @@ -75,7 +75,8 @@ private: size_t m_obj_index; std::optional m_original_its; - bool m_show_wireframe; + bool m_show_wireframe; + GLModel m_glmodel; std::atomic m_need_reload; // after simplify, glReload must be on main thread @@ -142,12 +143,7 @@ private: const std::string tr_detail_level; const std::string tr_decimate_ratio; - // rendering wireframe - void render_wireframe() const; - void init_wireframe(); - void free_gpu(); - GLuint m_wireframe_VBO_id, m_wireframe_IBO_id; - size_t m_wireframe_IBO_size; + void init_model(); // cancel exception class SimplifyCanceledException: public std::exception diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 2ff554ec88..3104a8595c 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -483,7 +483,7 @@ void GLGizmosManager::render_painter_gizmo() const if (!m_enabled || m_current == Undefined) return; - auto *gizmo = dynamic_cast(get_current()); + auto *gizmo = dynamic_cast(get_current()); assert(gizmo); // check the precondition gizmo->render_painter_gizmo(); } From 6661967f9f27a8f0309fe9b098cf8639a5cacdad Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 29 Oct 2021 12:35:57 +0200 Subject: [PATCH 120/130] Shared data packed in a struct --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 104 ++++++++-------------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 29 +++--- 2 files changed, 55 insertions(+), 78 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index cbca708329..d150483008 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -16,10 +16,9 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, const std::string &icon_filename, unsigned int sprite_id) : GLGizmoBase(parent, icon_filename, -1) - , m_state(State::settings) + , m_state({ State::settings, 0 }) , m_is_valid_result(false) , m_exist_preview(false) - , m_progress(0) , m_volume(nullptr) , m_obj_index(0) , m_need_reload(false) @@ -34,16 +33,16 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, {} GLGizmoSimplify::~GLGizmoSimplify() { - m_state = State::canceling; + m_state.status = State::canceling; if (m_worker.joinable()) m_worker.join(); m_glmodel.reset(); } bool GLGizmoSimplify::on_esc_key_down() { - if (m_state == State::settings || m_state == State::canceling) + if (m_state.status == State::settings || m_state.status == State::canceling) return false; - m_state = State::canceling; + m_state.status = State::canceling; return true; } @@ -111,17 +110,17 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi int obj_index = selection.get_object_idx(); ModelVolume *act_volume = get_volume(selection, wxGetApp().plater()->model()); if (act_volume == nullptr) { - switch (m_state) { + switch (m_state.status) { case State::settings: close(); break; case State::canceling: break; - default: m_state = State::canceling; + default: m_state.status = State::canceling; } return; } // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && m_state == State::settings) { + if (act_volume != m_volume && m_state.status == State::settings) { bool change_window_position = (m_volume == nullptr); // select different model if (m_volume != nullptr && m_original_its.has_value()) { @@ -264,18 +263,18 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe); - bool is_canceling = m_state == State::canceling; + bool is_canceling = m_state.status == State::canceling; m_imgui->disabled_begin(is_canceling); if (m_imgui->button(_L("Cancel"))) { - if (m_state == State::settings) { + if (m_state.status == State::settings) { if (m_original_its.has_value()) { set_its(*m_original_its); - m_state = State::close_on_end; + m_state.status = State::close_on_end; } else { close(); } } else { - m_state = State::canceling; + m_state.status = State::canceling; } } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_canceling) ImGui::SetTooltip("%s", _u8L("Operation already canceling. Please wait few seconds.").c_str()); @@ -283,11 +282,11 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(); - bool is_processing = m_state != State::settings; + bool is_processing = m_state.status != State::settings; m_imgui->disabled_begin(is_processing); if (m_imgui->button(_L("Apply"))) { if (!m_is_valid_result) { - m_state = State::close_on_end; + m_state.status = State::close_on_end; process(); } else if (m_exist_preview) { // use preview and close @@ -304,20 +303,18 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar char buf[32]; - int progress = m_progress; - sprintf(buf, L("Process %d / 100"), progress); - ImGui::ProgressBar(progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); + sprintf(buf, L("Process %d / 100"), m_state.progress); + ImGui::ProgressBar(m_state.progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); } m_imgui->end(); // refresh view when needed if (m_need_reload) { m_need_reload = false; - bool close_on_end = (m_state == State::close_on_end); - // Reload visualization of mesh - change VBO, FBO on GPU + bool close_on_end = (m_state.status == State::close_on_end); request_rerender(); - // set m_state must be before close() !!! - m_state = State::settings; + // set m_state.status must be before close() !!! + m_state.status = State::settings; if (close_on_end) after_apply(); else init_model(); // Fix warning icon in object list @@ -330,6 +327,7 @@ void GLGizmoSimplify::after_apply() { m_exist_preview = false; // fix hollowing, sla support points, modifiers, ... auto plater = wxGetApp().plater(); + plater->take_snapshot(_u8L("Simplify ") + m_volume->name); plater->changed_mesh(m_obj_index); close(); } @@ -342,19 +340,12 @@ void GLGizmoSimplify::close() { void GLGizmoSimplify::live_preview() { m_is_valid_result = false; - if (m_state != State::settings) { + if (m_state.status != State::settings) { // already canceling process - if (m_state == State::canceling) return; - - // wait until cancel - if (m_worker.joinable()) { - m_state = State::canceling; - m_dealy_process_cv.notify_one(); - m_worker.join(); - } + if (m_state.status == State::canceling) return; } - m_state = State::preview; + m_state.status = State::preview; process(); } @@ -387,48 +378,29 @@ void GLGizmoSimplify::process() // store previous state auto plater = wxGetApp().plater(); - plater->take_snapshot(_u8L("Simplify ") + m_volume->name); + // LUKAS: ??? plater->clear_before_change_mesh(m_obj_index); } - m_progress = 0; + m_state.progress = 0; if (m_worker.joinable()) m_worker.join(); - m_worker = std::thread([this]() { - {// delay before process - std::unique_lock lk(m_state_mutex); - auto is_modify = [this]() { return m_state == State::canceling; }; - if (m_dealy_process_cv.wait_for(lk, m_gui_cfg->prcess_delay, is_modify)) { - // exist modification - m_state = State::settings; - request_rerender(); - return; - } - } + m_worker = std::thread([this]() { - // store original triangles - uint32_t triangle_count = (m_configuration.use_count) ? m_configuration.wanted_count : 0; - float max_error = (!m_configuration.use_count) ? m_configuration.max_error : std::numeric_limits::max(); - - std::function throw_on_cancel = [&]() { - if (m_state == State::canceling) { + // Checks that the UI thread did not request cancellation, throw if so. + std::function throw_on_cancel = [this]() { + if (m_state.status == State::canceling) throw SimplifyCanceledException(); - } }; - int64_t last = 0; - std::function statusfn = [this, &last](int percent) { - m_progress = percent; - - // check max 4fps - int64_t now = m_parent.timestamp_now(); - if ((now - last) < 250) return; - last = now; - - request_rerender(); + // Called by worker thread, + std::function statusfn = [this](int percent) { + m_state.progress = percent; }; indexed_triangle_set collapsed = *m_original_its; // copy + uint32_t triangle_count = (m_configuration.use_count) ? m_configuration.wanted_count : 0; + float max_error = (!m_configuration.use_count) ? m_configuration.max_error : std::numeric_limits::max(); try { its_quadric_edge_collapse(collapsed, triangle_count, &max_error, throw_on_cancel, statusfn); @@ -437,7 +409,7 @@ void GLGizmoSimplify::process() m_exist_preview = true; } catch (SimplifyCanceledException &) { // set state out of main thread - m_state = State::settings; + m_state.status = State::settings; } // need to render last status fn to change bar graph to buttons request_rerender(); @@ -469,13 +441,13 @@ void GLGizmoSimplify::on_set_state() // cancel processing if (empty_selection && - m_state != State::settings && - m_state != State::canceling) - m_state = State::canceling; + m_state.status != State::settings && + m_state.status != State::canceling) + m_state.status = State::canceling; // refuse outgoing during simlification // object is not selected when it is deleted(cancel and close gizmo) - if (m_state != State::settings && !empty_selection) { + if (m_state.status != State::settings && !empty_selection) { GLGizmoBase::m_state = GLGizmoBase::On; auto notification_manager = wxGetApp().plater()->get_notification_manager(); notification_manager->push_notification( diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 979adfeba1..3373ca0b23 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -4,13 +4,11 @@ // Include GLGizmoBase.hpp before I18N.hpp as it includes some libigl code, // which overrides our localization "L" macro. #include "GLGizmoBase.hpp" -#include "slic3r/GUI/GLModel.hpp" #include "GLGizmoPainterBase.hpp" // for render wireframe +#include "slic3r/GUI/GLModel.hpp" #include "admesh/stl.h" // indexed_triangle_set #include #include -#include -#include #include #include @@ -35,6 +33,7 @@ public: const std::vector &object_ids, const ModelObjectPtrs & objects, NotificationManager & manager); + protected: virtual std::string on_get_name() const override; virtual void on_render_input_window(float x, float y, float bottom_limit) override; @@ -48,6 +47,7 @@ protected: virtual void on_render_for_picking() override{}; virtual CommonGizmosDataID on_get_requirements() const; + private: void after_apply(); void close(); @@ -70,7 +70,7 @@ private: bool m_move_to_center; // opening gizmo - std::atomic m_progress; // percent of done work + ModelVolume *m_volume; // keep pointer to actual working volume size_t m_obj_index; @@ -81,17 +81,22 @@ private: std::atomic m_need_reload; // after simplify, glReload must be on main thread std::thread m_worker; - // wait before process std::mutex m_state_mutex; - std::condition_variable m_dealy_process_cv; - enum class State { - settings, - preview, // simplify to show preview - close_on_end, // simplify with close on end - canceling // after button click, before canceled + struct State { + enum Status { + settings, + preview, // simplify to show preview + close_on_end, // simplify with close on end + canceling // after button click, before canceled + }; + + Status status; + int progress; // percent of done work + indexed_triangle_set result; }; - std::atomic m_state; + + State m_state; struct Configuration { From ab260d005e5ea50d224595617c2d0e8eb4b72ae6 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 29 Oct 2021 12:45:30 +0200 Subject: [PATCH 121/130] More adjustments, still working with Model directly --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 49 +++++++++-------------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 7 +--- 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index d150483008..6c4cce9ee7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -27,7 +27,6 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, // translation for GUI size , tr_mesh_name(_u8L("Mesh name")) , tr_triangles(_u8L("Triangles")) - , tr_preview(_u8L("Preview")) , tr_detail_level(_u8L("Detail level")) , tr_decimate_ratio(_u8L("Decimate ratio")) {} @@ -139,7 +138,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_is_valid_result = false; m_exist_preview = false; init_model(); - live_preview(); + process(); // set window position if (m_move_to_center && change_window_position) { @@ -185,20 +184,13 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_triangles + ":"); ImGui::SameLine(m_gui_cfg->top_left_width); m_imgui->text(std::to_string(triangle_count)); - /* - m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_preview + ":"); - ImGui::SameLine(m_gui_cfg->top_left_width); - if (m_exist_preview) { - m_imgui->text(std::to_string(m_volume->mesh().its.indices.size())); - } else { - m_imgui->text("---"); - }*/ + ImGui::Separator(); if(ImGui::RadioButton("##use_error", !m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - live_preview(); + process(); } ImGui::SameLine(); m_imgui->disabled_begin(m_configuration.use_count); @@ -223,13 +215,13 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi case 3: m_configuration.max_error = 0.5f; break; case 4: m_configuration.max_error = 1.f; break; } - live_preview(); + process(); } m_imgui->disabled_end(); // !use_count if (ImGui::RadioButton("##use_count", m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - live_preview(); + process(); } ImGui::SameLine(); @@ -253,7 +245,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi if (m_configuration.decimate_ratio > 100.f) m_configuration.decimate_ratio = 100.f; m_configuration.fix_count_by_ratio(triangle_count); - live_preview(); + process(); } ImGui::NewLine(); @@ -338,16 +330,6 @@ void GLGizmoSimplify::close() { gizmos_mgr.open_gizmo(GLGizmosManager::EType::Simplify); } -void GLGizmoSimplify::live_preview() { - m_is_valid_result = false; - if (m_state.status != State::settings) { - // already canceling process - if (m_state.status == State::canceling) return; - } - - m_state.status = State::preview; - process(); -} void GLGizmoSimplify::process() { @@ -383,28 +365,35 @@ void GLGizmoSimplify::process() } m_state.progress = 0; - if (m_worker.joinable()) m_worker.join(); + if (m_worker.joinable()) + m_worker.join(); - m_worker = std::thread([this]() { + // Create a copy of current mesh to pass to the worker thread. + // Using unique_ptr instead of pass-by-value to avoid an extra + // copy (which would happen when passing to std::thread). + auto its = std::make_unique(*m_original_its); + + m_worker = std::thread([this](std::unique_ptr its) { // Checks that the UI thread did not request cancellation, throw if so. std::function throw_on_cancel = [this]() { + std::lock_guard lk(m_state_mutex); if (m_state.status == State::canceling) throw SimplifyCanceledException(); }; // Called by worker thread, std::function statusfn = [this](int percent) { + std::lock_guard lk(m_state_mutex); m_state.progress = percent; }; - indexed_triangle_set collapsed = *m_original_its; // copy uint32_t triangle_count = (m_configuration.use_count) ? m_configuration.wanted_count : 0; float max_error = (!m_configuration.use_count) ? m_configuration.max_error : std::numeric_limits::max(); try { - its_quadric_edge_collapse(collapsed, triangle_count, &max_error, throw_on_cancel, statusfn); - set_its(collapsed); + its_quadric_edge_collapse(*its, triangle_count, &max_error, throw_on_cancel, statusfn); + set_its(*its); m_is_valid_result = true; m_exist_preview = true; } catch (SimplifyCanceledException &) { @@ -413,7 +402,7 @@ void GLGizmoSimplify::process() } // need to render last status fn to change bar graph to buttons request_rerender(); - }); + }, std::move(its)); } void GLGizmoSimplify::set_its(const indexed_triangle_set &its) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 3373ca0b23..3e0ea6706e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -51,7 +51,6 @@ protected: private: void after_apply(); void close(); - void live_preview(); void process(); void set_its(const indexed_triangle_set &its); void create_gui_cfg(); @@ -80,9 +79,6 @@ private: std::atomic m_need_reload; // after simplify, glReload must be on main thread - std::thread m_worker; - std::mutex m_state_mutex; - struct State { enum Status { settings, @@ -96,6 +92,8 @@ private: indexed_triangle_set result; }; + std::thread m_worker; + std::mutex m_state_mutex; // guards m_state State m_state; struct Configuration @@ -144,7 +142,6 @@ private: // translations used for calc window size const std::string tr_mesh_name; const std::string tr_triangles; - const std::string tr_preview; const std::string tr_detail_level; const std::string tr_decimate_ratio; From 7bcab6f7952873539cee6f745b5a168964e5a548 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 29 Oct 2021 17:58:05 +0200 Subject: [PATCH 122/130] Simplify does not touch ModelVolume all the time (runs, but needs polishing) --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 276 ++++++++++------------ src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 97 ++++---- 2 files changed, 173 insertions(+), 200 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 6c4cce9ee7..14bfcd020a 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -16,12 +16,7 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, const std::string &icon_filename, unsigned int sprite_id) : GLGizmoBase(parent, icon_filename, -1) - , m_state({ State::settings, 0 }) - , m_is_valid_result(false) - , m_exist_preview(false) , m_volume(nullptr) - , m_obj_index(0) - , m_need_reload(false) , m_show_wireframe(false) , m_move_to_center(false) // translation for GUI size @@ -32,16 +27,15 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, {} GLGizmoSimplify::~GLGizmoSimplify() { - m_state.status = State::canceling; + m_state.status = State::cancelling; if (m_worker.joinable()) m_worker.join(); m_glmodel.reset(); } bool GLGizmoSimplify::on_esc_key_down() { - if (m_state.status == State::settings || m_state.status == State::canceling) + if (m_state.status != State::running) return false; - - m_state.status = State::canceling; + m_state.status = State::cancelling; return true; } @@ -106,38 +100,27 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi { create_gui_cfg(); const Selection &selection = m_parent.get_selection(); - int obj_index = selection.get_object_idx(); ModelVolume *act_volume = get_volume(selection, wxGetApp().plater()->model()); if (act_volume == nullptr) { - switch (m_state.status) { - case State::settings: close(); break; - case State::canceling: break; - default: m_state.status = State::canceling; - } + stop_worker_thread(false); + close(); return; } // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && m_state.status == State::settings) { + if (act_volume != m_volume && m_state.status != State::Status::running) { bool change_window_position = (m_volume == nullptr); // select different model - if (m_volume != nullptr && m_original_its.has_value()) { - set_its(*m_original_its); - } // close suggestion notification auto notification_manager = wxGetApp().plater()->get_notification_manager(); notification_manager->remove_simplify_suggestion_with_id(act_volume->get_object()->id()); - m_obj_index = obj_index; // to remember correct object m_volume = act_volume; - m_original_its = {}; m_configuration.decimate_ratio = 50.; // default value m_configuration.fix_count_by_ratio(m_volume->mesh().its.indices.size()); - m_is_valid_result = false; - m_exist_preview = false; - init_model(); + init_model(m_volume->mesh().its); process(); // set window position @@ -169,12 +152,6 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi int flag = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse; m_imgui->begin(on_get_name(), flag); - - size_t triangle_count = m_volume->mesh().its.indices.size(); - // already reduced mesh - if (m_original_its.has_value()) - triangle_count = m_original_its->indices.size(); - m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_mesh_name + ":"); ImGui::SameLine(m_gui_cfg->top_left_width); std::string name = m_volume->name; @@ -183,7 +160,9 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_imgui->text(name); m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_triangles + ":"); ImGui::SameLine(m_gui_cfg->top_left_width); - m_imgui->text(std::to_string(triangle_count)); + + size_t orig_triangle_count = m_volume->mesh().its.indices.size(); + m_imgui->text(std::to_string(orig_triangle_count)); ImGui::Separator(); @@ -226,10 +205,11 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(); // show preview result triangle count (percent) - if (m_need_reload && !m_configuration.use_count) { - m_configuration.wanted_count = static_cast(m_volume->mesh().its.indices.size()); + // lm_FIXME + if (/*m_need_reload &&*/ !m_configuration.use_count) { + m_configuration.wanted_count = static_cast(m_triangle_count); m_configuration.decimate_ratio = - (1.0f - (m_configuration.wanted_count / (float) triangle_count)) * 100.f; + (1.0f - (m_configuration.wanted_count / (float) orig_triangle_count)) * 100.f; } m_imgui->disabled_begin(!m_configuration.use_count); @@ -244,7 +224,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_configuration.decimate_ratio = 0.01f; if (m_configuration.decimate_ratio > 100.f) m_configuration.decimate_ratio = 100.f; - m_configuration.fix_count_by_ratio(triangle_count); + m_configuration.fix_count_by_ratio(orig_triangle_count); process(); } @@ -255,37 +235,20 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe); - bool is_canceling = m_state.status == State::canceling; - m_imgui->disabled_begin(is_canceling); + bool is_cancelling = m_state.status == State::cancelling; + m_imgui->disabled_begin(is_cancelling); if (m_imgui->button(_L("Cancel"))) { - if (m_state.status == State::settings) { - if (m_original_its.has_value()) { - set_its(*m_original_its); - m_state.status = State::close_on_end; - } else { - close(); - } - } else { - m_state.status = State::canceling; - } - } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_canceling) - ImGui::SetTooltip("%s", _u8L("Operation already canceling. Please wait few seconds.").c_str()); - m_imgui->disabled_end(); // state canceling + close(); + } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_cancelling) + ImGui::SetTooltip("%s", _u8L("Operation already cancelling. Please wait few seconds.").c_str()); + m_imgui->disabled_end(); // state cancelling ImGui::SameLine(); - bool is_processing = m_state.status != State::settings; + bool is_processing = m_state.status == State::running; m_imgui->disabled_begin(is_processing); if (m_imgui->button(_L("Apply"))) { - if (!m_is_valid_result) { - m_state.status = State::close_on_end; - process(); - } else if (m_exist_preview) { - // use preview and close - after_apply(); - } else { // no changes made - close(); - } + apply_simplify(); } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_processing) ImGui::SetTooltip("%s", _u8L("Can't apply when proccess preview.").c_str()); m_imgui->disabled_end(); // state !settings @@ -301,28 +264,20 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_imgui->end(); // refresh view when needed - if (m_need_reload) { + // lm_FIXME + /*if (m_need_reload) { m_need_reload = false; bool close_on_end = (m_state.status == State::close_on_end); request_rerender(); // set m_state.status must be before close() !!! m_state.status = State::settings; if (close_on_end) after_apply(); - else init_model(); + else init_model(m_volume->mesh().its); // Fix warning icon in object list wxGetApp().obj_list()->update_item_error_icon(m_obj_index, -1); - } + }*/ } -void GLGizmoSimplify::after_apply() { - // set flag to NOT revert changes when switch GLGizmoBase::m_state - m_exist_preview = false; - // fix hollowing, sla support points, modifiers, ... - auto plater = wxGetApp().plater(); - plater->take_snapshot(_u8L("Simplify ") + m_volume->name); - plater->changed_mesh(m_obj_index); - close(); -} void GLGizmoSimplify::close() { // close gizmo == open it again @@ -330,55 +285,58 @@ void GLGizmoSimplify::close() { gizmos_mgr.open_gizmo(GLGizmosManager::EType::Simplify); } +void GLGizmoSimplify::stop_worker_thread(bool wait) +{ + if (! m_is_worker_running) + return; + + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::Status::running) { + assert(m_worker.joinable()); + m_state.status = State::Status::cancelling; + if (wait) + m_worker.join(); + } +} + + +// Following is called from a UI thread when the worker terminates +// worker calls it through a CallAfter. +void GLGizmoSimplify::worker_finished() +{ + assert(m_worker.joinable()); + m_worker.join(); + m_is_worker_running = false; + if (m_state.result) + init_model(*m_state.result); + request_rerender(); +} void GLGizmoSimplify::process() { - if (m_volume == nullptr) return; - if (m_volume->mesh().its.indices.empty()) return; - size_t count_triangles = m_volume->mesh().its.indices.size(); - // Is neccessary simplification - if ((m_configuration.use_count && m_configuration.wanted_count >= count_triangles) || - (!m_configuration.use_count && m_configuration.max_error <= 0.f)) { - - // Exist different original volume? - if (m_original_its.has_value() && - m_original_its->indices.size() != count_triangles) { - indexed_triangle_set its = *m_original_its; // copy - set_its(its); - } - m_is_valid_result = true; - - // re-render bargraph - set_dirty(); - m_parent.schedule_extra_frame(0); + if (m_is_worker_running || m_volume == nullptr || m_volume->mesh().its.indices.empty()) return; - } - // when not store original volume store it for cancelation - if (!m_original_its.has_value()) { - m_original_its = m_volume->mesh().its; // copy + assert(! m_worker.joinable()); - // store previous state - auto plater = wxGetApp().plater(); - // LUKAS: ??? - plater->clear_before_change_mesh(m_obj_index); - } + // Worker is not running now. No synchronization needed. + if (m_state.result && m_state.config == m_configuration) + return; // The result is still valid. - m_state.progress = 0; - if (m_worker.joinable()) - m_worker.join(); + // We are about to actually start simplification. + m_state.config = m_configuration; // Create a copy of current mesh to pass to the worker thread. // Using unique_ptr instead of pass-by-value to avoid an extra // copy (which would happen when passing to std::thread). - auto its = std::make_unique(*m_original_its); + auto its = std::make_unique(m_volume->mesh().its); m_worker = std::thread([this](std::unique_ptr its) { // Checks that the UI thread did not request cancellation, throw if so. std::function throw_on_cancel = [this]() { std::lock_guard lk(m_state_mutex); - if (m_state.status == State::canceling) + if (m_state.status == State::cancelling) throw SimplifyCanceledException(); }; @@ -388,30 +346,61 @@ void GLGizmoSimplify::process() m_state.progress = percent; }; - uint32_t triangle_count = (m_configuration.use_count) ? m_configuration.wanted_count : 0; - float max_error = (!m_configuration.use_count) ? m_configuration.max_error : std::numeric_limits::max(); + // Initialize. + uint32_t triangle_count = 0; + float max_error = std::numeric_limits::max(); + { + std::lock_guard lk(m_state_mutex); + if (m_configuration.use_count) + triangle_count = m_configuration.wanted_count; + if (! m_configuration.use_count) + max_error = m_configuration.max_error; + m_state.progress = 0; + m_state.result.reset(); + m_state.status = State::Status::running; + } + // Start the actual calculation. try { its_quadric_edge_collapse(*its, triangle_count, &max_error, throw_on_cancel, statusfn); - set_its(*its); - m_is_valid_result = true; - m_exist_preview = true; } catch (SimplifyCanceledException &) { - // set state out of main thread - m_state.status = State::settings; + std::lock_guard lk(m_state_mutex); + m_state.status = State::idle; } - // need to render last status fn to change bar graph to buttons - request_rerender(); + + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::Status::running) { + // We were not cancelled, the result is valid. + m_state.status = State::Status::idle; + m_state.result = std::move(its); + } + + // Update UI. Use CallAfter so the function is run on UI thread. + wxGetApp().CallAfter([this]() { worker_finished(); }); }, std::move(its)); + + m_is_worker_running = true; } -void GLGizmoSimplify::set_its(const indexed_triangle_set &its) { - if (m_volume == nullptr) return; // could appear after process - m_volume->set_mesh(its); +void GLGizmoSimplify::apply_simplify() { + assert(! m_is_worker_running); + + const Selection& selection = m_parent.get_selection(); + int object_idx = selection.get_object_idx(); + + auto plater = wxGetApp().plater(); + plater->take_snapshot(_u8L("Simplify ") + m_volume->name); + plater->clear_before_change_mesh(object_idx); + + m_volume->set_mesh(*m_state.result); m_volume->calculate_convex_hull(); m_volume->set_new_unique_id(); m_volume->get_object()->invalidate_bounding_box(); - m_need_reload = true; + + // fix hollowing, sla support points, modifiers, ... + + plater->changed_mesh(object_idx); + close(); } bool GLGizmoSimplify::on_is_activable() const @@ -425,40 +414,14 @@ void GLGizmoSimplify::on_set_state() if (GLGizmoBase::m_state == GLGizmoBase::Off) { m_parent.toggle_model_objects_visibility(true); - // can appear when delete objects - bool empty_selection = m_parent.get_selection().is_empty(); - - // cancel processing - if (empty_selection && - m_state.status != State::settings && - m_state.status != State::canceling) - m_state.status = State::canceling; - - // refuse outgoing during simlification - // object is not selected when it is deleted(cancel and close gizmo) - if (m_state.status != State::settings && !empty_selection) { - GLGizmoBase::m_state = GLGizmoBase::On; - auto notification_manager = wxGetApp().plater()->get_notification_manager(); - notification_manager->push_notification( - NotificationType::CustomNotification, - NotificationManager::NotificationLevel::PrintInfoNotificationLevel, - _u8L("ERROR: Wait until Simplification ends or Cancel process.")); - return; - } - - // revert preview - if (m_exist_preview) { - m_exist_preview = false; - if (exist_volume(m_volume)) { - set_its(*m_original_its); - request_rerender(); - m_need_reload = false; - } - } + // Stop worker but do not wait to join it. + stop_worker_thread(false); // invalidate selected model m_volume = nullptr; } else if (GLGizmoBase::m_state == GLGizmoBase::On) { + // Make sure the worker is not running and join it. + stop_worker_thread(true); // when open by hyperlink it needs to show up request_rerender(); } @@ -537,10 +500,10 @@ const ModelVolume *GLGizmoSimplify::get_volume(const GLVolume::CompositeID &cid, return obj->volumes[cid.volume_id]; } -void GLGizmoSimplify::init_model() +void GLGizmoSimplify::init_model(const indexed_triangle_set& its) { - const indexed_triangle_set &its = m_volume->mesh().its; - if (its.indices.empty()) return; + if (its.indices.empty()) + return; m_glmodel.reset(); m_glmodel.init_from(its); @@ -549,6 +512,7 @@ void GLGizmoSimplify::init_model() if (const Selection&sel = m_parent.get_selection(); sel.get_volume_idxs().size() == 1) m_glmodel.set_color(-1, sel.get_volume(*sel.get_volume_idxs().begin())->color); + m_triangle_count = its.indices.size(); } void GLGizmoSimplify::on_render() @@ -601,4 +565,16 @@ CommonGizmosDataID GLGizmoSimplify::on_get_requirements() const int(CommonGizmosDataID::SelectionInfo)); } + +void GLGizmoSimplify::Configuration::fix_count_by_ratio(size_t triangle_count) +{ + if (decimate_ratio <= 0.f) + wanted_count = static_cast(triangle_count); + else if (decimate_ratio >= 100.f) + wanted_count = 0; + else + wanted_count = static_cast(std::round( + triangle_count * (100.f - decimate_ratio) / 100.f)); +} + } // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 3e0ea6706e..573b1ea518 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -49,12 +49,16 @@ protected: virtual CommonGizmosDataID on_get_requirements() const; private: - void after_apply(); + void apply_simplify(); void close(); + void process(); - void set_its(const indexed_triangle_set &its); + void stop_worker_thread(bool wait); + void worker_finished(); + void create_gui_cfg(); void request_rerender(); + void init_model(const indexed_triangle_set& its); void set_center_position(); // move to global functions @@ -64,59 +68,54 @@ private: // return false when volume was deleted static bool exist_volume(const ModelVolume *volume); - std::atomic_bool m_is_valid_result; // differ what to do in apply - std::atomic_bool m_exist_preview; // set when process end - - bool m_move_to_center; // opening gizmo - - - ModelVolume *m_volume; // keep pointer to actual working volume - size_t m_obj_index; - - std::optional m_original_its; - bool m_show_wireframe; - GLModel m_glmodel; - - std::atomic m_need_reload; // after simplify, glReload must be on main thread - - struct State { - enum Status { - settings, - preview, // simplify to show preview - close_on_end, // simplify with close on end - canceling // after button click, before canceled - }; - - Status status; - int progress; // percent of done work - indexed_triangle_set result; - }; - - std::thread m_worker; - std::mutex m_state_mutex; // guards m_state - State m_state; struct Configuration { bool use_count = false; - // minimal triangle count float decimate_ratio = 50.f; // in percent - uint32_t wanted_count = 0; // initialize by percents + uint32_t wanted_count = 0; // initialize by percents + float max_error = 1.; // maximal quadric error - // maximal quadric error - float max_error = 1.; - - void fix_count_by_ratio(size_t triangle_count) - { - if (decimate_ratio <= 0.f) - wanted_count = static_cast(triangle_count); - else if (decimate_ratio >= 100.f) - wanted_count = 0; - else - wanted_count = static_cast(std::round( - triangle_count * (100.f - decimate_ratio) / 100.f)); + void fix_count_by_ratio(size_t triangle_count); + bool operator==(const Configuration& rhs) { + return (use_count == rhs.use_count && decimate_ratio == rhs.decimate_ratio + && wanted_count == rhs.wanted_count && max_error == rhs.max_error); } - } m_configuration; + }; + + Configuration m_configuration; + + bool m_move_to_center; // opening gizmo + + ModelVolume *m_volume; // keep pointer to actual working volume + + bool m_show_wireframe; + GLModel m_glmodel; + size_t m_triangle_count; // triangle count of the model currently shown + + // Following struct is accessed by both UI and worker thread. + // Accesses protected by a mutex. + struct State { + enum Status { + idle, + running, + cancelling + }; + + Status status = idle; + int progress = 0; // percent of done work + Configuration config; // Configuration we started with. + std::unique_ptr result; + }; + + std::thread m_worker; + std::mutex m_state_mutex; // guards m_state + State m_state; // accessed by both threads + + // Following variable is accessed by UI only. + bool m_is_worker_running = false; + + // This configs holds GUI layout size given by translated texts. // etc. When language changes, GUI is recreated and this class constructed again, @@ -145,8 +144,6 @@ private: const std::string tr_detail_level; const std::string tr_decimate_ratio; - void init_model(); - // cancel exception class SimplifyCanceledException: public std::exception { From be04751776b8f60b4db8f22780f14fb8b01149df Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Sat, 30 Oct 2021 00:47:36 +0200 Subject: [PATCH 123/130] Many small fixes --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 133 ++++++++++++++-------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 17 +-- 2 files changed, 89 insertions(+), 61 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 14bfcd020a..c5eada4a79 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -1,5 +1,4 @@ #include "GLGizmoSimplify.hpp" -#include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/GUI_ObjectManipulation.hpp" @@ -10,6 +9,10 @@ #include "libslic3r/Model.hpp" #include "libslic3r/QuadricEdgeCollapse.hpp" +#include + +#include + namespace Slic3r::GUI { GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, @@ -27,22 +30,22 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, {} GLGizmoSimplify::~GLGizmoSimplify() { - m_state.status = State::cancelling; - if (m_worker.joinable()) m_worker.join(); + stop_worker_thread(true); m_glmodel.reset(); } bool GLGizmoSimplify::on_esc_key_down() { - if (m_state.status != State::running) + return false; + /*if (!m_is_worker_running) return false; - m_state.status = State::cancelling; - return true; + stop_worker_thread(false); + return true;*/ } // while opening needs GLGizmoSimplify to set window position void GLGizmoSimplify::add_simplify_suggestion_notification( const std::vector &object_ids, - const ModelObjectPtrs & objects, + const std::vector& objects, NotificationManager & manager) { std::vector big_ids; @@ -107,9 +110,18 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi return; } + bool is_cancelling = false; + int progress = 0; + { + std::lock_guard lk(m_state_mutex); + is_cancelling = m_state.status == State::cancelling; + progress = m_state.progress; + } + + // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && m_state.status != State::Status::running) { + if (act_volume != m_volume && ! m_is_worker_running) { bool change_window_position = (m_volume == nullptr); // select different model @@ -235,9 +247,8 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe); - bool is_cancelling = m_state.status == State::cancelling; m_imgui->disabled_begin(is_cancelling); - if (m_imgui->button(_L("Cancel"))) { + if (m_imgui->button(_L("Close"))) { close(); } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_cancelling) ImGui::SetTooltip("%s", _u8L("Operation already cancelling. Please wait few seconds.").c_str()); @@ -245,21 +256,20 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(); - bool is_processing = m_state.status == State::running; - m_imgui->disabled_begin(is_processing); + m_imgui->disabled_begin(m_is_worker_running); if (m_imgui->button(_L("Apply"))) { apply_simplify(); - } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_processing) + } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && m_is_worker_running) ImGui::SetTooltip("%s", _u8L("Can't apply when proccess preview.").c_str()); m_imgui->disabled_end(); // state !settings // draw progress bar - if (is_processing) { // apply or preview + if (m_is_worker_running) { // apply or preview ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar char buf[32]; - sprintf(buf, L("Process %d / 100"), m_state.progress); - ImGui::ProgressBar(m_state.progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); + sprintf(buf, L("Process %d / 100"), progress); + ImGui::ProgressBar(progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); } m_imgui->end(); @@ -287,15 +297,14 @@ void GLGizmoSimplify::close() { void GLGizmoSimplify::stop_worker_thread(bool wait) { - if (! m_is_worker_running) - return; - - std::lock_guard lk(m_state_mutex); - if (m_state.status == State::Status::running) { - assert(m_worker.joinable()); - m_state.status = State::Status::cancelling; - if (wait) - m_worker.join(); + { + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::running) + m_state.status = State::Status::cancelling; + } + if (wait && m_worker.joinable()) { + m_worker.join(); + m_is_worker_running = false; } } @@ -304,26 +313,53 @@ void GLGizmoSimplify::stop_worker_thread(bool wait) // worker calls it through a CallAfter. void GLGizmoSimplify::worker_finished() { - assert(m_worker.joinable()); - m_worker.join(); m_is_worker_running = false; + if (! m_worker.joinable()) { + // Probably stop_worker_thread waited after cancel. + // Nobody cares about the result apparently. + assert(! m_state.result); + return; + } + m_worker.join(); + if (GLGizmoBase::m_state == Off) + return; if (m_state.result) init_model(*m_state.result); + if (m_state.config != m_configuration) { + // Settings were changed, restart the worker immediately. + process(); + } request_rerender(); } void GLGizmoSimplify::process() { - if (m_is_worker_running || m_volume == nullptr || m_volume->mesh().its.indices.empty()) + if (m_volume == nullptr || m_volume->mesh().its.indices.empty()) return; - assert(! m_worker.joinable()); + bool configs_match = false; + bool result_valid = false; + { + std::lock_guard lk(m_state_mutex); + configs_match = m_state.config == m_configuration; + result_valid = bool(m_state.result); + } - // Worker is not running now. No synchronization needed. - if (m_state.result && m_state.config == m_configuration) - return; // The result is still valid. - - // We are about to actually start simplification. + if ((result_valid || m_is_worker_running) && configs_match) { + // Either finished or waiting for result already. Nothing to do. + return; + } + + if (m_is_worker_running && m_state.config != m_configuration) { + // Worker is running with outdated config. Stop it. It will + // restart itself when cancellation is done. + stop_worker_thread(false); + return; + } + + assert(! m_is_worker_running && ! m_worker.joinable()); + + // Copy configuration that will be used. m_state.config = m_configuration; // Create a copy of current mesh to pass to the worker thread. @@ -333,14 +369,14 @@ void GLGizmoSimplify::process() m_worker = std::thread([this](std::unique_ptr its) { - // Checks that the UI thread did not request cancellation, throw if so. + // Checks that the UI thread did not request cancellation, throws if so. std::function throw_on_cancel = [this]() { std::lock_guard lk(m_state_mutex); if (m_state.status == State::cancelling) throw SimplifyCanceledException(); }; - // Called by worker thread, + // Called by worker thread, updates progress bar. std::function statusfn = [this](int percent) { std::lock_guard lk(m_state_mutex); m_state.progress = percent; @@ -351,10 +387,10 @@ void GLGizmoSimplify::process() float max_error = std::numeric_limits::max(); { std::lock_guard lk(m_state_mutex); - if (m_configuration.use_count) - triangle_count = m_configuration.wanted_count; - if (! m_configuration.use_count) - max_error = m_configuration.max_error; + if (m_state.config.use_count) + triangle_count = m_state.config.wanted_count; + if (! m_state.config.use_count) + max_error = m_state.config.max_error; m_state.progress = 0; m_state.result.reset(); m_state.status = State::Status::running; @@ -392,13 +428,13 @@ void GLGizmoSimplify::apply_simplify() { plater->take_snapshot(_u8L("Simplify ") + m_volume->name); plater->clear_before_change_mesh(object_idx); - m_volume->set_mesh(*m_state.result); + m_volume->set_mesh(std::move(*m_state.result)); + m_state.result.reset(); m_volume->calculate_convex_hull(); m_volume->set_new_unique_id(); m_volume->get_object()->invalidate_bounding_box(); - // fix hollowing, sla support points, modifiers, ... - + // fix hollowing, sla support points, modifiers, ... plater->changed_mesh(object_idx); close(); } @@ -414,14 +450,10 @@ void GLGizmoSimplify::on_set_state() if (GLGizmoBase::m_state == GLGizmoBase::Off) { m_parent.toggle_model_objects_visibility(true); - // Stop worker but do not wait to join it. - stop_worker_thread(false); - - // invalidate selected model - m_volume = nullptr; + stop_worker_thread(false); // Stop worker, don't wait for it. + m_volume = nullptr; // invalidate selected model + m_glmodel.reset(); } else if (GLGizmoBase::m_state == GLGizmoBase::On) { - // Make sure the worker is not running and join it. - stop_worker_thread(true); // when open by hyperlink it needs to show up request_rerender(); } @@ -507,6 +539,7 @@ void GLGizmoSimplify::init_model(const indexed_triangle_set& its) m_glmodel.reset(); m_glmodel.init_from(its); + m_parent.toggle_model_objects_visibility(true); // selected volume may have changed m_parent.toggle_model_objects_visibility(false, m_c->selection_info()->model_object(), m_c->selection_info()->get_active_instance(), m_volume); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 573b1ea518..b055f458f1 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -4,21 +4,13 @@ // Include GLGizmoBase.hpp before I18N.hpp as it includes some libigl code, // which overrides our localization "L" macro. #include "GLGizmoBase.hpp" -#include "GLGizmoPainterBase.hpp" // for render wireframe -#include "slic3r/GUI/GLModel.hpp" +#include "slic3r/GUI/3DScene.hpp" #include "admesh/stl.h" // indexed_triangle_set -#include #include -#include -#include - -#include // GLUint - -// for simplify suggestion -class ModelObjectPtrs; // std::vector namespace Slic3r { class ModelVolume; +class Model; namespace GUI { class NotificationManager; // for simplify suggestion @@ -31,7 +23,7 @@ public: bool on_esc_key_down(); static void add_simplify_suggestion_notification( const std::vector &object_ids, - const ModelObjectPtrs & objects, + const std::vector & objects, NotificationManager & manager); protected: @@ -81,6 +73,9 @@ private: return (use_count == rhs.use_count && decimate_ratio == rhs.decimate_ratio && wanted_count == rhs.wanted_count && max_error == rhs.max_error); } + bool operator!=(const Configuration& rhs) { + return ! (*this == rhs); + } }; Configuration m_configuration; From 9ad54ab4db769ed809a7ce2305b4a5c28d564d34 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Sat, 30 Oct 2021 01:14:52 +0200 Subject: [PATCH 124/130] Some more cleanup --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 82 +++++++++-------------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 9 +-- 2 files changed, 31 insertions(+), 60 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index c5eada4a79..727fc07788 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -15,6 +15,26 @@ namespace Slic3r::GUI { +static ModelVolume* get_model_volume(const Selection& selection, Model& model) +{ + const Selection::IndicesList& idxs = selection.get_volume_idxs(); + // only one selected volume + if (idxs.size() != 1) + return nullptr; + const GLVolume* selected_volume = selection.get_volume(*idxs.begin()); + if (selected_volume == nullptr) + return nullptr; + + const GLVolume::CompositeID& cid = selected_volume->composite_id; + const ModelObjectPtrs& objs = model.objects; + if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) + return nullptr; + const ModelObject* obj = objs[cid.object_id]; + if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) + return nullptr; + return obj->volumes[cid.volume_id]; +} + GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, const std::string &icon_filename, unsigned int sprite_id) @@ -103,7 +123,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi { create_gui_cfg(); const Selection &selection = m_parent.get_selection(); - ModelVolume *act_volume = get_volume(selection, wxGetApp().plater()->model()); + const ModelVolume *act_volume = get_model_volume(selection, wxGetApp().plater()->model()); if (act_volume == nullptr) { stop_worker_thread(false); close(); @@ -428,11 +448,14 @@ void GLGizmoSimplify::apply_simplify() { plater->take_snapshot(_u8L("Simplify ") + m_volume->name); plater->clear_before_change_mesh(object_idx); - m_volume->set_mesh(std::move(*m_state.result)); + ModelVolume* mv = get_model_volume(selection, wxGetApp().model()); + assert(mv == m_volume); + + mv->set_mesh(std::move(*m_state.result)); m_state.result.reset(); - m_volume->calculate_convex_hull(); - m_volume->set_new_unique_id(); - m_volume->get_object()->invalidate_bounding_box(); + mv->calculate_convex_hull(); + mv->set_new_unique_id(); + mv->get_object()->invalidate_bounding_box(); // fix hollowing, sla support points, modifiers, ... plater->changed_mesh(object_idx); @@ -481,56 +504,16 @@ void GLGizmoSimplify::create_gui_cfg() { } void GLGizmoSimplify::request_rerender() { - wxGetApp().plater()->CallAfter([this]() { + //wxGetApp().plater()->CallAfter([this]() { set_dirty(); m_parent.schedule_extra_frame(0); - }); + //}); } void GLGizmoSimplify::set_center_position() { m_move_to_center = true; } -bool GLGizmoSimplify::exist_volume(const ModelVolume *volume) { - for (const ModelObject* obj : wxGetApp().plater()->model().objects) { - const auto & vlms = obj->volumes; - auto item = std::find(vlms.begin(), vlms.end(), volume); - if (item != vlms.end()) - return true; - } - return false; -} - -ModelVolume * GLGizmoSimplify::get_volume(const Selection &selection, Model &model) -{ - const Selection::IndicesList& idxs = selection.get_volume_idxs(); - // only one selected volume - if (idxs.size() != 1) - return nullptr; - const GLVolume *selected_volume = selection.get_volume(*idxs.begin()); - if (selected_volume == nullptr) - return nullptr; - - const GLVolume::CompositeID &cid = selected_volume->composite_id; - const ModelObjectPtrs& objs = model.objects; - if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) - return nullptr; - const ModelObject* obj = objs[cid.object_id]; - if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) - return nullptr; - return obj->volumes[cid.volume_id]; -} - -const ModelVolume *GLGizmoSimplify::get_volume(const GLVolume::CompositeID &cid, const Model &model) -{ - const ModelObjectPtrs &objs = model.objects; - if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) - return nullptr; - const ModelObject *obj = objs[cid.object_id]; - if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) - return nullptr; - return obj->volumes[cid.volume_id]; -} void GLGizmoSimplify::init_model(const indexed_triangle_set& its) { @@ -550,7 +533,6 @@ void GLGizmoSimplify::init_model(const indexed_triangle_set& its) void GLGizmoSimplify::on_render() { - // is initialized? if (! m_glmodel.is_initialized()) return; @@ -558,10 +540,6 @@ void GLGizmoSimplify::on_render() const auto& volume_idxs = selection.get_volume_idxs(); if (volume_idxs.empty() || volume_idxs.size() != 1) return; const GLVolume *selected_volume = selection.get_volume(*volume_idxs.begin()); - - // check that selected model is wireframe initialized - if (m_volume != get_volume(selected_volume->composite_id, *m_parent.get_model())) - return; const Transform3d trafo_matrix = selected_volume->world_matrix(); glsafe(::glPushMatrix()); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index b055f458f1..10e89e3c8f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -53,13 +53,6 @@ private: void init_model(const indexed_triangle_set& its); void set_center_position(); - // move to global functions - static ModelVolume *get_volume(const Selection &selection, Model &model); - static const ModelVolume *get_volume(const GLVolume::CompositeID &cid, const Model &model); - - // return false when volume was deleted - static bool exist_volume(const ModelVolume *volume); - struct Configuration { @@ -82,7 +75,7 @@ private: bool m_move_to_center; // opening gizmo - ModelVolume *m_volume; // keep pointer to actual working volume + const ModelVolume *m_volume; // keep pointer to actual working volume bool m_show_wireframe; GLModel m_glmodel; From 0bfa81be56ed316567076825ed07db9497114405 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 1 Nov 2021 09:36:44 +0100 Subject: [PATCH 125/130] Several more fixes: - fixed crash on close when worker is running - refresh percentage in the UI by requesting extra frames - get rid of extra m_is_worker_running variable --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 78 ++++++++++++++--------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 9 ++- 2 files changed, 51 insertions(+), 36 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 727fc07788..8718f67ce5 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -15,6 +15,19 @@ namespace Slic3r::GUI { +// Following flag and function allow to schedule a function call through CallAfter, +// but only run it when the gizmo is still alive. Scheduling a CallAfter from the +// background thread may trigger the code after the gizmo is destroyed. Having +// both the gizmo and the checking function static should solve it. +bool s_simplify_gizmo_destructor_run = false; +void call_after_if_alive(std::function fn) +{ + wxGetApp().CallAfter([fn]() { + if (! s_simplify_gizmo_destructor_run) + fn(); + }); +} + static ModelVolume* get_model_volume(const Selection& selection, Model& model) { const Selection::IndicesList& idxs = selection.get_volume_idxs(); @@ -49,8 +62,12 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, , tr_decimate_ratio(_u8L("Decimate ratio")) {} -GLGizmoSimplify::~GLGizmoSimplify() { - stop_worker_thread(true); +GLGizmoSimplify::~GLGizmoSimplify() +{ + s_simplify_gizmo_destructor_run = true; + stop_worker_thread_request(); + if (m_worker.joinable()) + m_worker.join(); m_glmodel.reset(); } @@ -58,7 +75,7 @@ bool GLGizmoSimplify::on_esc_key_down() { return false; /*if (!m_is_worker_running) return false; - stop_worker_thread(false); + stop_worker_thread_request(); return true;*/ } @@ -125,23 +142,25 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi const Selection &selection = m_parent.get_selection(); const ModelVolume *act_volume = get_model_volume(selection, wxGetApp().plater()->model()); if (act_volume == nullptr) { - stop_worker_thread(false); + stop_worker_thread_request(); close(); return; } bool is_cancelling = false; + bool is_worker_running = false; int progress = 0; { std::lock_guard lk(m_state_mutex); is_cancelling = m_state.status == State::cancelling; + is_worker_running = m_state.status == State::running; progress = m_state.progress; } // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && ! m_is_worker_running) { + if (act_volume != m_volume && ! is_worker_running) { bool change_window_position = (m_volume == nullptr); // select different model @@ -276,15 +295,15 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(); - m_imgui->disabled_begin(m_is_worker_running); + m_imgui->disabled_begin(is_worker_running); if (m_imgui->button(_L("Apply"))) { apply_simplify(); - } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && m_is_worker_running) + } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_worker_running) ImGui::SetTooltip("%s", _u8L("Can't apply when proccess preview.").c_str()); m_imgui->disabled_end(); // state !settings // draw progress bar - if (m_is_worker_running) { // apply or preview + if (is_worker_running) { // apply or preview ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar char buf[32]; @@ -315,17 +334,12 @@ void GLGizmoSimplify::close() { gizmos_mgr.open_gizmo(GLGizmosManager::EType::Simplify); } -void GLGizmoSimplify::stop_worker_thread(bool wait) +void GLGizmoSimplify::stop_worker_thread_request() { - { - std::lock_guard lk(m_state_mutex); - if (m_state.status == State::running) - m_state.status = State::Status::cancelling; - } - if (wait && m_worker.joinable()) { - m_worker.join(); - m_is_worker_running = false; - } + + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::running) + m_state.status = State::Status::cancelling; } @@ -333,9 +347,8 @@ void GLGizmoSimplify::stop_worker_thread(bool wait) // worker calls it through a CallAfter. void GLGizmoSimplify::worker_finished() { - m_is_worker_running = false; if (! m_worker.joinable()) { - // Probably stop_worker_thread waited after cancel. + // Somebody already joined. // Nobody cares about the result apparently. assert(! m_state.result); return; @@ -359,25 +372,27 @@ void GLGizmoSimplify::process() bool configs_match = false; bool result_valid = false; + bool is_worker_running = false; { std::lock_guard lk(m_state_mutex); configs_match = m_state.config == m_configuration; result_valid = bool(m_state.result); + is_worker_running = m_state.status == State::running; } - if ((result_valid || m_is_worker_running) && configs_match) { + if ((result_valid || is_worker_running) && configs_match) { // Either finished or waiting for result already. Nothing to do. return; } - if (m_is_worker_running && m_state.config != m_configuration) { + if (is_worker_running && m_state.config != m_configuration) { // Worker is running with outdated config. Stop it. It will // restart itself when cancellation is done. - stop_worker_thread(false); + stop_worker_thread_request(); return; } - assert(! m_is_worker_running && ! m_worker.joinable()); + assert(! is_worker_running && ! m_worker.joinable()); // Copy configuration that will be used. m_state.config = m_configuration; @@ -397,9 +412,11 @@ void GLGizmoSimplify::process() }; // Called by worker thread, updates progress bar. + // Using CallAfter so the rerequest function is run in UI thread. std::function statusfn = [this](int percent) { std::lock_guard lk(m_state_mutex); m_state.progress = percent; + call_after_if_alive([this]() { request_rerender(); }); }; // Initialize. @@ -432,14 +449,11 @@ void GLGizmoSimplify::process() } // Update UI. Use CallAfter so the function is run on UI thread. - wxGetApp().CallAfter([this]() { worker_finished(); }); + call_after_if_alive([this]() { worker_finished(); }); }, std::move(its)); - - m_is_worker_running = true; } void GLGizmoSimplify::apply_simplify() { - assert(! m_is_worker_running); const Selection& selection = m_parent.get_selection(); int object_idx = selection.get_object_idx(); @@ -473,7 +487,7 @@ void GLGizmoSimplify::on_set_state() if (GLGizmoBase::m_state == GLGizmoBase::Off) { m_parent.toggle_model_objects_visibility(true); - stop_worker_thread(false); // Stop worker, don't wait for it. + stop_worker_thread_request(); m_volume = nullptr; // invalidate selected model m_glmodel.reset(); } else if (GLGizmoBase::m_state == GLGizmoBase::On) { @@ -504,10 +518,12 @@ void GLGizmoSimplify::create_gui_cfg() { } void GLGizmoSimplify::request_rerender() { - //wxGetApp().plater()->CallAfter([this]() { + int64_t now = m_parent.timestamp_now(); + if (now > m_last_rerender_timestamp + 250) { // 250 ms set_dirty(); m_parent.schedule_extra_frame(0); - //}); + m_last_rerender_timestamp = now; + } } void GLGizmoSimplify::set_center_position() { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 10e89e3c8f..71907917b9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -45,7 +45,7 @@ private: void close(); void process(); - void stop_worker_thread(bool wait); + void stop_worker_thread_request(); void worker_finished(); void create_gui_cfg(); @@ -81,6 +81,9 @@ private: GLModel m_glmodel; size_t m_triangle_count; // triangle count of the model currently shown + // Timestamp of the last rerender request. Only accessed from UI thread. + int64_t m_last_rerender_timestamp = std::numeric_limits::min(); + // Following struct is accessed by both UI and worker thread. // Accesses protected by a mutex. struct State { @@ -100,10 +103,6 @@ private: std::mutex m_state_mutex; // guards m_state State m_state; // accessed by both threads - // Following variable is accessed by UI only. - bool m_is_worker_running = false; - - // This configs holds GUI layout size given by translated texts. // etc. When language changes, GUI is recreated and this class constructed again, From a61c892c0588d14aca98794cca00374f6db65b6c Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 1 Nov 2021 11:21:50 +0100 Subject: [PATCH 126/130] Some more fixes when switching objects while simplifying --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 85 +++++++++++++---------- src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp | 3 +- 2 files changed, 50 insertions(+), 38 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 8718f67ce5..e817fe9607 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -19,7 +19,7 @@ namespace Slic3r::GUI { // but only run it when the gizmo is still alive. Scheduling a CallAfter from the // background thread may trigger the code after the gizmo is destroyed. Having // both the gizmo and the checking function static should solve it. -bool s_simplify_gizmo_destructor_run = false; +static bool s_simplify_gizmo_destructor_run = false; void call_after_if_alive(std::function fn) { wxGetApp().CallAfter([fn]() { @@ -149,18 +149,23 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi bool is_cancelling = false; bool is_worker_running = false; + bool is_result_ready = false; int progress = 0; { std::lock_guard lk(m_state_mutex); is_cancelling = m_state.status == State::cancelling; is_worker_running = m_state.status == State::running; + is_result_ready = bool(m_state.result); progress = m_state.progress; } + + // Whether to trigger calculation after rendering is done. + bool start_process = false; // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && ! is_worker_running) { + if (act_volume != m_volume) { bool change_window_position = (m_volume == nullptr); // select different model @@ -172,7 +177,10 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_configuration.decimate_ratio = 50.; // default value m_configuration.fix_count_by_ratio(m_volume->mesh().its.indices.size()); init_model(m_volume->mesh().its); - process(); + + // Start processing. If we switched from another object, process will + // stop the background thread and it will restart itself later. + start_process = true; // set window position if (m_move_to_center && change_window_position) { @@ -220,7 +228,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi if(ImGui::RadioButton("##use_error", !m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - process(); + start_process = true; } ImGui::SameLine(); m_imgui->disabled_begin(m_configuration.use_count); @@ -245,19 +253,18 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi case 3: m_configuration.max_error = 0.5f; break; case 4: m_configuration.max_error = 1.f; break; } - process(); + start_process = true; } m_imgui->disabled_end(); // !use_count if (ImGui::RadioButton("##use_count", m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - process(); + start_process = true; } ImGui::SameLine(); // show preview result triangle count (percent) - // lm_FIXME - if (/*m_need_reload &&*/ !m_configuration.use_count) { + if (!m_configuration.use_count) { m_configuration.wanted_count = static_cast(m_triangle_count); m_configuration.decimate_ratio = (1.0f - (m_configuration.wanted_count / (float) orig_triangle_count)) * 100.f; @@ -276,7 +283,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi if (m_configuration.decimate_ratio > 100.f) m_configuration.decimate_ratio = 100.f; m_configuration.fix_count_by_ratio(orig_triangle_count); - process(); + start_process = true; } ImGui::NewLine(); @@ -295,7 +302,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::SameLine(); - m_imgui->disabled_begin(is_worker_running); + m_imgui->disabled_begin(is_worker_running || ! is_result_ready); if (m_imgui->button(_L("Apply"))) { apply_simplify(); } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_worker_running) @@ -312,19 +319,8 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi } m_imgui->end(); - // refresh view when needed - // lm_FIXME - /*if (m_need_reload) { - m_need_reload = false; - bool close_on_end = (m_state.status == State::close_on_end); - request_rerender(); - // set m_state.status must be before close() !!! - m_state.status = State::settings; - if (close_on_end) after_apply(); - else init_model(m_volume->mesh().its); - // Fix warning icon in object list - wxGetApp().obj_list()->update_item_error_icon(m_obj_index, -1); - }*/ + if (start_process) + process(); } @@ -336,7 +332,6 @@ void GLGizmoSimplify::close() { void GLGizmoSimplify::stop_worker_thread_request() { - std::lock_guard lk(m_state_mutex); if (m_state.status == State::running) m_state.status = State::Status::cancelling; @@ -347,22 +342,25 @@ void GLGizmoSimplify::stop_worker_thread_request() // worker calls it through a CallAfter. void GLGizmoSimplify::worker_finished() { - if (! m_worker.joinable()) { - // Somebody already joined. - // Nobody cares about the result apparently. - assert(! m_state.result); - return; + { + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::running) { + // Someone started the worker again, before this callback + // was called. Do nothing. + return; + } } - m_worker.join(); + if (m_worker.joinable()) + m_worker.join(); if (GLGizmoBase::m_state == Off) return; if (m_state.result) init_model(*m_state.result); - if (m_state.config != m_configuration) { + if (m_state.config != m_configuration || m_state.mv != m_volume) { // Settings were changed, restart the worker immediately. process(); } - request_rerender(); + request_rerender(true); } void GLGizmoSimplify::process() @@ -375,7 +373,7 @@ void GLGizmoSimplify::process() bool is_worker_running = false; { std::lock_guard lk(m_state_mutex); - configs_match = m_state.config == m_configuration; + configs_match = (m_volume == m_state.mv && m_state.config == m_configuration); result_valid = bool(m_state.result); is_worker_running = m_state.status == State::running; } @@ -385,17 +383,24 @@ void GLGizmoSimplify::process() return; } - if (is_worker_running && m_state.config != m_configuration) { + if (is_worker_running && ! configs_match) { // Worker is running with outdated config. Stop it. It will // restart itself when cancellation is done. stop_worker_thread_request(); return; } - assert(! is_worker_running && ! m_worker.joinable()); + if (m_worker.joinable()) { + // This can happen when process() is called after previous worker terminated, + // but before the worker_finished callback was called. In this case, just join the thread, + // the callback will check this and do nothing. + m_worker.join(); + } // Copy configuration that will be used. m_state.config = m_configuration; + m_state.mv = m_volume; + m_state.status = State::running; // Create a copy of current mesh to pass to the worker thread. // Using unique_ptr instead of pass-by-value to avoid an extra @@ -473,6 +478,8 @@ void GLGizmoSimplify::apply_simplify() { // fix hollowing, sla support points, modifiers, ... plater->changed_mesh(object_idx); + // Fix warning icon in object list + wxGetApp().obj_list()->update_item_error_icon(object_idx, -1); close(); } @@ -517,9 +524,9 @@ void GLGizmoSimplify::create_gui_cfg() { m_gui_cfg = cfg; } -void GLGizmoSimplify::request_rerender() { +void GLGizmoSimplify::request_rerender(bool force) { int64_t now = m_parent.timestamp_now(); - if (now > m_last_rerender_timestamp + 250) { // 250 ms + if (force || now > m_last_rerender_timestamp + 250) { // 250 ms set_dirty(); m_parent.schedule_extra_frame(0); m_last_rerender_timestamp = now; @@ -557,6 +564,10 @@ void GLGizmoSimplify::on_render() if (volume_idxs.empty() || volume_idxs.size() != 1) return; const GLVolume *selected_volume = selection.get_volume(*volume_idxs.begin()); + // Check that the GLVolume still belongs to the ModelObject we work on. + if (m_volume != get_model_volume(selection, wxGetApp().model())) + return; + const Transform3d trafo_matrix = selected_volume->world_matrix(); glsafe(::glPushMatrix()); glsafe(::glMultMatrixd(trafo_matrix.data())); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index 71907917b9..e6367ee275 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -49,7 +49,7 @@ private: void worker_finished(); void create_gui_cfg(); - void request_rerender(); + void request_rerender(bool force = false); void init_model(const indexed_triangle_set& its); void set_center_position(); @@ -96,6 +96,7 @@ private: Status status = idle; int progress = 0; // percent of done work Configuration config; // Configuration we started with. + const ModelVolume* mv = nullptr; std::unique_ptr result; }; From d72fba2a6a6af8876c2afa2424745ee7f6f0977e Mon Sep 17 00:00:00 2001 From: Filip Sykala Date: Mon, 8 Nov 2021 15:09:52 +0100 Subject: [PATCH 127/130] translation of progress --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index e817fe9607..6c9e1b9fa3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -313,12 +313,11 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi if (is_worker_running) { // apply or preview ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar - char buf[32]; - sprintf(buf, L("Process %d / 100"), progress); - ImGui::ProgressBar(progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); + std::string progress_text = GUI::format(_L("Process %1% / 100"), std::to_string(progress)); + ImVec2 progress_size(m_gui_cfg->input_width, 0.f); + ImGui::ProgressBar(progress / 100., progress_size, progress_text.c_str()); } m_imgui->end(); - if (start_process) process(); } From 934ed0bbae99b845cc5b4458eead1ac7895b2a56 Mon Sep 17 00:00:00 2001 From: Filip Sykala Date: Mon, 8 Nov 2021 16:54:00 +0100 Subject: [PATCH 128/130] Remove static flag and extend case when call after will be from unactive Gizmo. --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 31 +++++++++++++---------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index 6c9e1b9fa3..b71443b576 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -15,16 +15,22 @@ namespace Slic3r::GUI { -// Following flag and function allow to schedule a function call through CallAfter, -// but only run it when the gizmo is still alive. Scheduling a CallAfter from the -// background thread may trigger the code after the gizmo is destroyed. Having -// both the gizmo and the checking function static should solve it. -static bool s_simplify_gizmo_destructor_run = false; -void call_after_if_alive(std::function fn) +// Extend call after only when Simplify gizmo is still alive +static void call_after_if_active(std::function fn, GUI_App* app = &wxGetApp()) { - wxGetApp().CallAfter([fn]() { - if (! s_simplify_gizmo_destructor_run) - fn(); + // check application GUI + if (app == nullptr) return; + app->CallAfter([fn, app]() { + // app must exist because it call this + // if (app == nullptr) return; + const Plater *plater = app->plater(); + if (plater == nullptr) return; + const GLCanvas3D *canvas = plater->canvas3D(); + if (canvas == nullptr) return; + const GLGizmosManager &mng = canvas->get_gizmos_manager(); + // check if simplify is still activ gizmo + if (mng.get_current_type() != GLGizmosManager::Simplify) return; + fn(); }); } @@ -63,8 +69,7 @@ GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, {} GLGizmoSimplify::~GLGizmoSimplify() -{ - s_simplify_gizmo_destructor_run = true; +{ stop_worker_thread_request(); if (m_worker.joinable()) m_worker.join(); @@ -420,7 +425,7 @@ void GLGizmoSimplify::process() std::function statusfn = [this](int percent) { std::lock_guard lk(m_state_mutex); m_state.progress = percent; - call_after_if_alive([this]() { request_rerender(); }); + call_after_if_active([this]() { request_rerender(); }); }; // Initialize. @@ -453,7 +458,7 @@ void GLGizmoSimplify::process() } // Update UI. Use CallAfter so the function is run on UI thread. - call_after_if_alive([this]() { worker_finished(); }); + call_after_if_active([this]() { worker_finished(); }); }, std::move(its)); } From c677b2771c6e146e5dfa7b7126881934f7d8cf43 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Thu, 11 Nov 2021 15:55:37 +0100 Subject: [PATCH 129/130] Make sure the object does not float after simplification --- src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index b71443b576..9f5990e236 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -479,6 +479,7 @@ void GLGizmoSimplify::apply_simplify() { mv->calculate_convex_hull(); mv->set_new_unique_id(); mv->get_object()->invalidate_bounding_box(); + mv->get_object()->ensure_on_bed(true); // allow negative z // fix hollowing, sla support points, modifiers, ... plater->changed_mesh(object_idx); From b3992ab35d304fd538ed1b6e5092d5a8d3191c29 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 12 Nov 2021 07:56:47 +0100 Subject: [PATCH 130/130] Tech ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - Fixed imgui slider label --- src/slic3r/GUI/ImGuiWrapper.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 5dd5da9f39..da377c2ad0 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -9,6 +9,7 @@ #include #include #if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT +#include #include #endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT @@ -486,7 +487,16 @@ bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float { const float max_tooltip_width = ImGui::GetFontSize() * 20.0f; - bool ret = ImGui::SliderFloat(label, v, v_min, v_max, format, power); + std::string str_label; + if (boost::algorithm::istarts_with(label, "##")) + str_label = std::string(label); + else { + str_label = std::string("##") + std::string(label); + this->text(label); + ImGui::SameLine(); + } + + bool ret = ImGui::SliderFloat(str_label.c_str(), v, v_min, v_max, format, power); if (!tooltip.empty() && ImGui::IsItemHovered()) this->tooltip(into_u8(tooltip).c_str(), max_tooltip_width); @@ -497,10 +507,8 @@ bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float const ImGuiStyle& style = ImGui::GetStyle(); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, { 1, style.ItemSpacing.y }); ImGui::SameLine(); - - std::wstring btn_name; - btn_name = ImGui::SliderFloatEditBtnIcon + boost::nowide::widen(std::string(label)); - ImGui::PushStyleColor(ImGuiCol_Button, { 0.25f, 0.25f, 0.25f, 1.0f }); + std::wstring btn_name = ImGui::SliderFloatEditBtnIcon + boost::nowide::widen(str_label); + ImGui::PushStyleColor(ImGuiCol_Button, { 0.25f, 0.25f, 0.25f, 0.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, { 0.5f, 0.5f, 0.5f, 1.0f }); ImGui::PushStyleColor(ImGuiCol_ButtonActive, { 0.5f, 0.5f, 0.5f, 1.0f }); if (ImGui::Button(into_u8(btn_name).c_str())) {