diff --git a/crates/transform-gizmo-bevy/src/lib.rs b/crates/transform-gizmo-bevy/src/lib.rs index 47bbe43..d745ffb 100644 --- a/crates/transform-gizmo-bevy/src/lib.rs +++ b/crates/transform-gizmo-bevy/src/lib.rs @@ -33,7 +33,9 @@ use bevy::utils::{HashMap, Uuid}; use bevy::window::PrimaryWindow; use bevy_math::{DQuat, DVec3}; use render::{DrawDataHandles, TransformGizmoRenderPlugin}; -use transform_gizmo::config::{DEFAULT_SNAP_ANGLE, DEFAULT_SNAP_DISTANCE, DEFAULT_SNAP_SCALE}; +use transform_gizmo::config::{ + TransformPivotPoint, DEFAULT_SNAP_ANGLE, DEFAULT_SNAP_DISTANCE, DEFAULT_SNAP_SCALE, +}; pub use transform_gizmo::{ math::{Pos2, Rect}, @@ -70,6 +72,8 @@ pub struct GizmoOptions { pub gizmo_modes: EnumSet, /// Orientation of the gizmo. This affects the behaviour of transformations. pub gizmo_orientation: GizmoOrientation, + /// Orientation of the gizmo. This affects the behaviour of transformations. + pub pivot_point: TransformPivotPoint, /// Look and feel of the gizmo. pub visuals: GizmoVisuals, /// Whether snapping is enabled in the gizmo transformations. @@ -90,7 +94,8 @@ impl Default for GizmoOptions { fn default() -> Self { Self { gizmo_modes: EnumSet::only(GizmoMode::Rotate), - gizmo_orientation: GizmoOrientation::Global, + gizmo_orientation: GizmoOrientation::default(), + pivot_point: TransformPivotPoint::default(), visuals: Default::default(), snapping: false, snap_angle: DEFAULT_SNAP_ANGLE, @@ -113,14 +118,32 @@ impl Default for GizmoOptions { #[derive(Component, Copy, Clone, Debug, Default)] pub struct GizmoTarget { /// Whether any part of the gizmo is currently focused. - pub is_focused: bool, + pub(crate) is_focused: bool, /// Whether the gizmo is currently being interacted with. - pub is_active: bool, + pub(crate) is_active: bool, /// This gets replaced with the result of the most recent /// gizmo interaction that affected this entity. - pub latest_result: Option, + pub(crate) latest_result: Option, +} + +impl GizmoTarget { + /// Whether any part of the gizmo is currently focused. + pub fn is_focused(&self) -> bool { + self.is_focused + } + + /// Whether the gizmo is currently being interacted with. + pub fn is_active(&self) -> bool { + self.is_active + } + + /// This gets replaced with the result of the most recent + /// gizmo interaction that affected this entity. + pub fn latest_result(&self) -> Option { + self.latest_result + } } /// Marker used to specify which camera to use for gizmos. @@ -178,6 +201,7 @@ fn update_gizmos( viewport, modes: gizmo_options.gizmo_modes, orientation: gizmo_options.gizmo_orientation, + pivot_point: gizmo_options.pivot_point, visuals: gizmo_options.visuals, snapping: gizmo_options.snapping, snap_angle: gizmo_options.snap_angle, diff --git a/crates/transform-gizmo/src/config.rs b/crates/transform-gizmo/src/config.rs index b601bde..5090e23 100644 --- a/crates/transform-gizmo/src/config.rs +++ b/crates/transform-gizmo/src/config.rs @@ -16,7 +16,7 @@ pub const DEFAULT_SNAP_DISTANCE: f32 = 0.1; /// The default snapping distance for scale pub const DEFAULT_SNAP_SCALE: f32 = 0.1; -/// Configuration of a [`Gizmo`]. +/// Configuration of a gizmo. /// /// Defines how the gizmo is drawn to the screen and /// how it can be interacted with. @@ -32,6 +32,8 @@ pub struct GizmoConfig { pub modes: EnumSet, /// Determines the gizmo's orientation relative to global or local axes. pub orientation: GizmoOrientation, + /// Pivot point for transformations + pub pivot_point: TransformPivotPoint, /// Toggles snapping to predefined increments during transformations for precision. pub snapping: bool, /// Angle increment for snapping rotations, in radians. @@ -53,7 +55,8 @@ impl Default for GizmoConfig { projection_matrix: DMat4::IDENTITY.into(), viewport: Rect::NOTHING, modes: enum_set!(GizmoMode::Rotate), - orientation: GizmoOrientation::Global, + orientation: GizmoOrientation::default(), + pivot_point: TransformPivotPoint::default(), snapping: false, snap_angle: DEFAULT_SNAP_ANGLE, snap_distance: DEFAULT_SNAP_DISTANCE, @@ -82,12 +85,22 @@ impl GizmoConfig { /// Whether local orientation is used pub(crate) fn local_space(&self) -> bool { - // Scale mode only works in local space - self.orientation == GizmoOrientation::Local || self.modes.contains(GizmoMode::Scale) + self.orientation() == GizmoOrientation::Local + } + + /// Transform orientation of the gizmo + pub(crate) fn orientation(&self) -> GizmoOrientation { + if self.modes.contains(GizmoMode::Scale) { + // Scaling currently only works in local orientation, + // so the configured orientation is ignored. + GizmoOrientation::Local + } else { + self.orientation + } } } -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Default)] pub(crate) struct PreparedGizmoConfig { config: GizmoConfig, /// Rotation of the gizmo @@ -98,6 +111,8 @@ pub(crate) struct PreparedGizmoConfig { pub(crate) scale: DVec3, /// Combined view-projection matrix pub(crate) view_projection: DMat4, + /// Model matrix from targets + pub(crate) model_matrix: DMat4, /// Combined model-view-projection matrix pub(crate) mvp: DMat4, /// Scale factor for the gizmo rendering @@ -126,6 +141,12 @@ impl DerefMut for PreparedGizmoConfig { impl PreparedGizmoConfig { pub(crate) fn from_config(config: GizmoConfig) -> Self { + let mut prepared_config = Self::default(); + prepared_config.update_for_config(config); + prepared_config + } + + pub(crate) fn update_for_config(&mut self, config: GizmoConfig) { let projection_matrix = DMat4::from(config.projection_matrix); let view_matrix = DMat4::from(config.view_matrix); @@ -137,18 +158,15 @@ impl PreparedGizmoConfig { projection_matrix.z_axis.w > 0.0 }; - Self { - config, - rotation: DQuat::IDENTITY, - translation: DVec3::ZERO, - scale: DVec3::ONE, - view_projection, - mvp: view_projection, - eye_to_model_dir: DVec3::ZERO, - scale_factor: 1.0, - focus_distance: 1.0, - left_handed, - } + self.config = config; + self.view_projection = view_projection; + self.left_handed = left_handed; + + self.update_transform(Transform { + scale: self.scale.into(), + rotation: self.rotation.into(), + translation: self.translation.into(), + }); } pub(crate) fn update_for_targets(&mut self, targets: &[Transform]) { @@ -172,12 +190,28 @@ impl PreparedGizmoConfig { scale /= target_count as f64; } - let model_matrix = DMat4::from_scale_rotation_translation(scale, rotation, translation); + self.update_transform(Transform { + scale: scale.into(), + rotation: rotation.into(), + translation: translation.into(), + }); + } + + pub(crate) fn update_transform(&mut self, transform: Transform) { + self.translation = transform.translation.into(); + self.rotation = transform.rotation.into(); + self.scale = transform.scale.into(); + self.model_matrix = + DMat4::from_scale_rotation_translation(self.scale, self.rotation, self.translation); + self.mvp = self.view_projection * self.model_matrix; - self.mvp = self.view_projection * model_matrix; + self.scale_factor = self.mvp.as_ref()[15] as f32 + / self.projection_matrix.x.x as f32 + / self.config.viewport.width() + * 2.0; let gizmo_screen_pos = - world_to_screen(self.config.viewport, self.mvp, translation).unwrap_or_default(); + world_to_screen(self.config.viewport, self.mvp, self.translation).unwrap_or_default(); let gizmo_view_near = screen_to_world( self.config.viewport, @@ -186,17 +220,17 @@ impl PreparedGizmoConfig { -1.0, ); - self.scale_factor = self.mvp.as_ref()[15] as f32 - / self.projection_matrix.x.x as f32 - / self.config.viewport.width() - * 2.0; - self.focus_distance = self.scale_factor * (self.config.visuals.stroke_width / 2.0 + 5.0); - self.rotation = rotation; - self.translation = translation; - self.scale = scale; - self.eye_to_model_dir = (gizmo_view_near - translation).normalize_or_zero(); + self.eye_to_model_dir = (gizmo_view_near - self.translation).normalize_or_zero(); + } + + pub(crate) fn as_transform(&self) -> Transform { + Transform { + scale: self.scale.into(), + rotation: self.rotation.into(), + translation: self.translation.into(), + } } } @@ -208,13 +242,23 @@ pub enum GizmoMode { Scale, } -#[derive(Debug, Copy, Clone, Eq, PartialEq)] +/// The point in space around which all rotations are centered. +#[derive(Debug, Copy, Clone, Eq, PartialEq, Default)] +pub enum TransformPivotPoint { + /// Pivot around the median point of targets + #[default] + MedianPoint, + /// Pivot around each target's own origin + IndividualOrigins, +} + +/// Orientation of a gizmo. +#[derive(Debug, Copy, Clone, Eq, PartialEq, Default)] pub enum GizmoOrientation { - /// Transformation axes are aligned to world space. Rotation of the - /// gizmo does not change. + /// Transformation axes are aligned to world space. + #[default] Global, - /// Transformation axes are aligned to local space. Rotation of the - /// gizmo matches the rotation represented by the model matrix. + /// Transformation axes are aligned to the last target's orientation. Local, } diff --git a/crates/transform-gizmo/src/gizmo.rs b/crates/transform-gizmo/src/gizmo.rs index c3ac054..0cdc5c7 100644 --- a/crates/transform-gizmo/src/gizmo.rs +++ b/crates/transform-gizmo/src/gizmo.rs @@ -1,10 +1,12 @@ use ecolor::Rgba; use emath::Pos2; -use enumset::EnumSet; use std::ops::{Add, AddAssign, Sub}; -use crate::config::{GizmoConfig, GizmoDirection, GizmoMode, PreparedGizmoConfig}; +use crate::config::{ + GizmoConfig, GizmoDirection, GizmoMode, PreparedGizmoConfig, TransformPivotPoint, +}; use crate::math::{screen_to_world, Transform}; +use crate::GizmoOrientation; use epaint::Mesh; use glam::{DQuat, DVec3}; @@ -24,14 +26,13 @@ pub struct Gizmo { /// various other values calculated from it, used for /// interaction and drawing the gizmo. config: PreparedGizmoConfig, - /// The last enabled modes of the gizmo. - /// The subgizmos are rebuilt when modes change. - last_modes: EnumSet, /// Subgizmos used in the gizmo. subgizmos: Vec, active_subgizmo_id: Option, target_start_transforms: Vec, + + gizmo_start_transform: Transform, } impl Default for Gizmo { @@ -45,11 +46,12 @@ impl Gizmo { pub fn new(config: GizmoConfig) -> Self { Self { config: PreparedGizmoConfig::from_config(config), - last_modes: Default::default(), subgizmos: Default::default(), active_subgizmo_id: None, target_start_transforms: vec![], + + gizmo_start_transform: Default::default(), } } @@ -60,7 +62,28 @@ impl Gizmo { /// Updates the configuration used by the gizmo. pub fn update_config(&mut self, config: GizmoConfig) { - self.config = PreparedGizmoConfig::from_config(config); + if config.modes != self.config.modes { + self.subgizmos.clear(); + self.active_subgizmo_id = None; + } + + self.config.update_for_config(config); + + if self.subgizmos.is_empty() { + for mode in self.config.modes { + match mode { + GizmoMode::Rotate => { + self.add_rotation(); + } + GizmoMode::Translate => { + self.add_translation(); + } + GizmoMode::Scale => { + self.add_scale(); + } + }; + } + } } /// Was this gizmo focused after the latest [`Gizmo::update`] call. @@ -105,40 +128,20 @@ impl Gizmo { interaction: GizmoInteraction, targets: &[Transform], ) -> Option<(GizmoResult, Vec)> { - // Mode was changed. Update all subgizmos accordingly. - if self.config.modes != self.last_modes { - self.last_modes = self.config.modes; - - self.active_subgizmo_id = None; - self.subgizmos.clear(); - - // Choose subgizmos based on the gizmo mode - for mode in self.config.modes { - match mode { - GizmoMode::Rotate => { - self.add_rotation(); - } - GizmoMode::Translate => { - self.add_translation(); - } - GizmoMode::Scale => { - self.add_scale(); - } - }; - } - } - if !self.config.viewport.is_finite() { return None; } - // Update the gizmo based on the given targets. - self.config.update_for_targets(targets); + // Update the gizmo based on the given target transforms, + // unless the gizmo is currently being interacted with. + if self.active_subgizmo_id.is_none() { + self.config.update_for_targets(targets); + } for subgizmo in &mut self.subgizmos { // Update current configuration to each subgizmo. subgizmo.update_config(self.config); - // All subgizmoes are initially considered unfocused. + // All subgizmos are initially considered unfocused. subgizmo.set_focused(false); } @@ -154,19 +157,14 @@ impl Gizmo { if interaction.drag_started { self.active_subgizmo_id = Some(subgizmo.id()); self.target_start_transforms = targets.to_vec(); + self.gizmo_start_transform = self.config.as_transform(); } } } - let mut active_subgizmo = self.active_subgizmo_id.and_then(|id| { - self.subgizmos - .iter_mut() - .find(|subgizmo| subgizmo.id() == id) - }); - let mut result = None; - if let Some(subgizmo) = active_subgizmo.as_mut() { + if let Some(subgizmo) = self.active_subgizmo_mut() { if interaction.dragging { subgizmo.set_active(true); subgizmo.set_focused(true); @@ -180,40 +178,20 @@ impl Gizmo { let Some(result) = result else { // No interaction, no result. - return None; - }; - let mut updated_targets = Vec::::new(); + self.config.update_for_targets(targets); - for (target_start_transform, target_transform) in - self.target_start_transforms.iter().zip(targets) - { - let mut new_target_transform = *target_transform; + for subgizmo in &mut self.subgizmos { + subgizmo.update_config(self.config); + } - match result { - GizmoResult::Rotation { delta, total: _ } => { - // Rotate around the target group origin - let rotation_delta = DQuat::from(delta); - let origin = self.config.translation; + return None; + }; - new_target_transform.translation = (origin - + rotation_delta * (DVec3::from(target_transform.translation) - origin)) - .into(); - new_target_transform.rotation = - (rotation_delta * DQuat::from(target_transform.rotation)).into(); - } - GizmoResult::Translation { delta, total: _ } => { - new_target_transform.translation = - (DVec3::from(delta) + DVec3::from(new_target_transform.translation)).into(); - } - GizmoResult::Scale { total } => { - new_target_transform.scale = - (DVec3::from(target_start_transform.scale) * DVec3::from(total)).into(); - } - } + self.update_config_with_result(result); - updated_targets.push(new_target_transform); - } + let updated_targets = + self.update_transforms_with_result(result, targets, &self.target_start_transforms); Some((result, updated_targets)) } @@ -236,6 +214,117 @@ impl Gizmo { draw_data } + fn active_subgizmo_mut(&mut self) -> Option<&mut SubGizmo> { + self.active_subgizmo_id.and_then(|id| { + self.subgizmos + .iter_mut() + .find(|subgizmo| subgizmo.id() == id) + }) + } + + fn update_transforms_with_result( + &self, + result: GizmoResult, + transforms: &[Transform], + start_transforms: &[Transform], + ) -> Vec { + transforms + .iter() + .zip(start_transforms) + .map(|(transform, start_transform)| match result { + GizmoResult::Rotation { + axis, + delta, + total: _, + is_view_axis, + } => self.update_rotation(transform, axis, delta, is_view_axis), + GizmoResult::Translation { delta, total: _ } => { + self.update_translation(delta, transform, start_transform) + } + GizmoResult::Scale { total } => { + Self::update_scale(transform, start_transform, total) + } + GizmoResult::Arcball { delta, total: _ } => { + self.update_rotation_quat(transform, delta.into()) + } + }) + .collect() + } + + fn update_rotation( + &self, + transform: &Transform, + axis: mint::Vector3, + delta: f64, + is_view_axis: bool, + ) -> Transform { + let axis = match self.config.orientation() { + GizmoOrientation::Local if !is_view_axis => { + DQuat::from(transform.rotation) * DVec3::from(axis) + } + _ => DVec3::from(axis), + }; + + let delta = DQuat::from_axis_angle(axis, delta); + + self.update_rotation_quat(transform, delta) + } + + fn update_rotation_quat(&self, transform: &Transform, delta: DQuat) -> Transform { + let translation = match self.config.pivot_point { + TransformPivotPoint::MedianPoint => (self.config.translation + + delta * (DVec3::from(transform.translation) - self.config.translation)) + .into(), + TransformPivotPoint::IndividualOrigins => transform.translation, + }; + + Transform { + scale: transform.scale, + rotation: (delta * DQuat::from(transform.rotation)).into(), + translation, + } + } + + fn update_translation( + &self, + delta: mint::Vector3, + transform: &Transform, + start_transform: &Transform, + ) -> Transform { + let delta = match self.config.orientation() { + GizmoOrientation::Global => DVec3::from(delta), + GizmoOrientation::Local => DQuat::from(start_transform.rotation) * DVec3::from(delta), + }; + + Transform { + scale: start_transform.scale, + rotation: start_transform.rotation, + translation: (delta + DVec3::from(transform.translation)).into(), + } + } + + fn update_scale( + transform: &Transform, + start_transform: &Transform, + scale: mint::Vector3, + ) -> Transform { + Transform { + scale: (DVec3::from(start_transform.scale) * DVec3::from(scale)).into(), + rotation: transform.rotation, + translation: transform.translation, + } + } + + fn update_config_with_result(&mut self, result: GizmoResult) { + let new_config_transform = self.update_transforms_with_result( + result, + &[self.config.as_transform()], + &[self.gizmo_start_transform], + )[0]; + + self.config.update_transform(new_config_transform); + } + /// Picks the subgizmo that is closest to the given world space ray. fn pick_subgizmo(&mut self, ray: Ray) -> Option<&mut SubGizmo> { self.subgizmos @@ -464,10 +553,14 @@ pub struct GizmoInteraction { #[derive(Debug, Copy, Clone)] pub enum GizmoResult { Rotation { - /// The latest rotation delta - delta: mint::Quaternion, - /// Total rotation of the gizmo interaction - total: mint::Quaternion, + /// The rotation axis, + axis: mint::Vector3, + /// The latest rotation angle delta + delta: f64, + /// Total rotation angle of the gizmo interaction + total: f64, + /// Whether we are rotating along the view axis + is_view_axis: bool, }, Translation { /// The latest translation delta @@ -479,6 +572,12 @@ pub enum GizmoResult { /// Total scale of the gizmo interaction total: mint::Vector3, }, + Arcball { + /// The latest rotation delta + delta: mint::Quaternion, + /// Total rotation of the gizmo interaction + total: mint::Quaternion, + }, } /// Data used to draw [`Gizmo`]. diff --git a/crates/transform-gizmo/src/math.rs b/crates/transform-gizmo/src/math.rs index d9831ae..b524d9b 100644 --- a/crates/transform-gizmo/src/math.rs +++ b/crates/transform-gizmo/src/math.rs @@ -8,6 +8,16 @@ pub struct Transform { pub translation: mint::Vector3, } +impl Default for Transform { + fn default() -> Self { + Self { + scale: DVec3::ONE.into(), + rotation: DQuat::IDENTITY.into(), + translation: DVec3::ZERO.into(), + } + } +} + impl Transform { pub fn from_scale_rotation_translation( scale: impl Into>, diff --git a/crates/transform-gizmo/src/subgizmo/arcball.rs b/crates/transform-gizmo/src/subgizmo/arcball.rs index 208738a..afd5e2e 100644 --- a/crates/transform-gizmo/src/subgizmo/arcball.rs +++ b/crates/transform-gizmo/src/subgizmo/arcball.rs @@ -53,10 +53,9 @@ impl SubGizmoKind for Arcball { }; subgizmo.state.last_pos = ray.screen_pos; - subgizmo.state.total_rotation = rotation_delta.mul_quat(subgizmo.state.total_rotation); - Some(GizmoResult::Rotation { + Some(GizmoResult::Arcball { delta: rotation_delta.into(), total: subgizmo.state.total_rotation.into(), }) diff --git a/crates/transform-gizmo/src/subgizmo/rotation.rs b/crates/transform-gizmo/src/subgizmo/rotation.rs index 432f8bd..5f32416 100644 --- a/crates/transform-gizmo/src/subgizmo/rotation.rs +++ b/crates/transform-gizmo/src/subgizmo/rotation.rs @@ -97,13 +97,13 @@ impl SubGizmoKind for Rotation { subgizmo.state.last_rotation_angle = rotation_angle; subgizmo.state.current_delta += angle_delta; - let normal = gizmo_normal(&subgizmo.config, subgizmo.direction); - let rotation_delta = DQuat::from_axis_angle(normal, -angle_delta); - let total_rotation = DQuat::from_axis_angle(normal, subgizmo.state.current_delta); + let normal = gizmo_local_normal(&subgizmo.config, subgizmo.direction); Some(GizmoResult::Rotation { - delta: rotation_delta.into(), - total: total_rotation.into(), + axis: normal.into(), + delta: -angle_delta, + total: subgizmo.state.current_delta, + is_view_axis: subgizmo.direction == GizmoDirection::View, }) } diff --git a/crates/transform-gizmo/src/subgizmo/translation.rs b/crates/transform-gizmo/src/subgizmo/translation.rs index f45697d..73a861d 100644 --- a/crates/transform-gizmo/src/subgizmo/translation.rs +++ b/crates/transform-gizmo/src/subgizmo/translation.rs @@ -5,7 +5,7 @@ use crate::subgizmo::common::{ pick_arrow, pick_circle, pick_plane, plane_bitangent, plane_global_origin, plane_tangent, }; use crate::subgizmo::{common::TransformKind, SubGizmoConfig, SubGizmoKind}; -use crate::{gizmo::Ray, GizmoDirection, GizmoDrawData, GizmoMode, GizmoResult}; +use crate::{gizmo::Ray, GizmoDirection, GizmoDrawData, GizmoMode, GizmoOrientation, GizmoResult}; pub(crate) type TranslationSubGizmo = SubGizmoConfig; @@ -81,8 +81,14 @@ impl SubGizmoKind for Translation { new_point = subgizmo.state.start_point + new_delta; } - let translation_delta = new_point - subgizmo.state.last_point; - let total_translation = new_point - subgizmo.state.start_point; + let mut translation_delta = new_point - subgizmo.state.last_point; + let mut total_translation = new_point - subgizmo.state.start_point; + + if subgizmo.config.orientation() == GizmoOrientation::Local { + let inverse_rotation = subgizmo.config.rotation.inverse(); + translation_delta = inverse_rotation * translation_delta; + total_translation = inverse_rotation * total_translation; + } subgizmo.state.last_point = new_point; subgizmo.state.current_delta = new_delta; diff --git a/docs/bevy-example.js b/docs/bevy-example.js index 648d9b7..3cb069a 100644 --- a/docs/bevy-example.js +++ b/docs/bevy-example.js @@ -1 +1 @@ -let ac=11384,V=null,S=`undefined`,a2=`boolean`,ab=11285,a0=`function`,a3=`string`,Z=0,W=1,a4=`Object`,X=`utf-8`,a1=`number`,a7=4,U=Array,Y=Error,a6=FinalizationRegistry,a9=Float32Array,$=Int32Array,a5=JSON.stringify,aa=Object,a8=Uint32Array,_=Uint8Array,T=undefined;var L=((a,b)=>{a=a>>>Z;return K().subarray(a/a7,a/a7+ b)});var v=(a=>{const b=typeof a;if(b==a1||b==a2||a==V){return `${a}`};if(b==a3){return `"${a}"`};if(b==`symbol`){const b=a.description;if(b==V){return `Symbol`}else{return `Symbol(${b})`}};if(b==a0){const b=a.name;if(typeof b==a3&&b.length>Z){return `Function(${b})`}else{return `Function`}};if(U.isArray(a)){const b=a.length;let c=`[`;if(b>Z){c+=v(a[Z])};for(let d=W;dW){d=c[W]}else{return toString.call(a)};if(d==a4){try{return `Object(`+ a5(a)+ `)`}catch(a){return a4}};if(a instanceof Y){return `${a.name}: ${a.message}\n${a.stack}`};return d});var A=((a,c,d)=>{b.wasm_bindgen__convert__closures__invoke1_mut__h110e77542f142fb7(a,c,h(d))});var K=(()=>{if(J===V||J.byteLength===Z){J=new a9(b.memory.buffer)};return J});var O=((a,b)=>{});function E(a,c){try{return a.apply(this,c)}catch(a){b.__wbindgen_exn_store(h(a))}}var z=((a,c,d,e)=>{b.wasm_bindgen__convert__closures__invoke2_mut__h0cc3af2cea8a14d6(a,c,h(d),h(e))});var m=(a=>a===T||a===V);var d=(a=>c[a]);var o=(()=>{if(n===V||n.byteLength===Z){n=new Float64Array(b.memory.buffer)};return n});var N=(()=>{const c={};c.wbg={};c.wbg.__wbindgen_object_drop_ref=(a=>{g(a)});c.wbg.__wbindgen_object_clone_ref=(a=>{const b=d(a);return h(b)});c.wbg.__wbg_Window_cc0273a5da2c36dc=(a=>{const b=d(a).Window;return h(b)});c.wbg.__wbg_webkitRequestFullscreen_8abcfecec7127495=(a=>{d(a).webkitRequestFullscreen()});c.wbg.__wbg_webkitFullscreenElement_533c5f32e2ac8d0c=(a=>{const b=d(a).webkitFullscreenElement;return m(b)?Z:h(b)});c.wbg.__wbg_webkitExitFullscreen_225988f6e8c97b63=(a=>{d(a).webkitExitFullscreen()});c.wbg.__wbg_requestFullscreen_f4349fb8a7429cf9=(a=>{const b=d(a).requestFullscreen();return h(b)});c.wbg.__wbg_requestFullscreen_a851d70cb190396a=(a=>{const b=d(a).requestFullscreen;return h(b)});c.wbg.__wbg_prototype_8e5075a5dd95f801=(()=>{const a=ResizeObserverEntry.prototype;return h(a)});c.wbg.__wbindgen_string_new=((a,b)=>{const c=l(a,b);return h(c)});c.wbg.__wbindgen_is_undefined=(a=>{const b=d(a)===T;return b});c.wbg.__wbg_postTask_4674878f9a603824=((a,b,c)=>{const e=d(a).postTask(d(b),d(c));return h(e)});c.wbg.__wbindgen_cb_drop=(a=>{const b=g(a).original;if(b.cnt--==W){b.a=Z;return !0};const c=!1;return c});c.wbg.__wbg_getCoalescedEvents_4665669d237be577=(a=>{const b=d(a).getCoalescedEvents;return h(b)});c.wbg.__wbg_onpointerrawupdate_e087759b4021ec00=(a=>{const b=d(a).onpointerrawupdate;return h(b)});c.wbg.__wbg_requestIdleCallback_081ddac93612a53e=(a=>{const b=d(a).requestIdleCallback;return h(b)});c.wbg.__wbg_scheduler_6932606c19435996=(a=>{const b=d(a).scheduler;return h(b)});c.wbg.__wbg_offsetX_d08eda91526f22a2=(a=>{const b=d(a).offsetX;return b});c.wbg.__wbg_offsetY_3c895bb1534dfbf4=(a=>{const b=d(a).offsetY;return b});c.wbg.__wbg_scheduler_8082c844a9cfc0df=(a=>{const b=d(a).scheduler;return h(b)});c.wbg.__wbindgen_number_new=(a=>{const b=a;return h(b)});c.wbg.__wbindgen_number_get=((a,b)=>{const c=d(b);const e=typeof c===a1?c:T;o()[a/8+ W]=m(e)?Z:e;q()[a/a7+ Z]=!m(e)});c.wbg.__wbindgen_is_null=(a=>{const b=d(a)===V;return b});c.wbg.__wbindgen_string_get=((a,c)=>{const e=d(c);const f=typeof e===a3?e:T;var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbindgen_boolean_get=(a=>{const b=d(a);const c=typeof b===a2?(b?W:Z):2;return c});c.wbg.__wbg_log_c9486ca5d8e2cbe8=((a,c)=>{let d;let e;try{d=a;e=c;console.log(l(a,c))}finally{b.__wbindgen_free(d,e,W)}});c.wbg.__wbg_log_aba5996d9bde071f=((a,c,d,e,f,g,h,i)=>{let j;let k;try{j=a;k=c;console.log(l(a,c),l(d,e),l(f,g),l(h,i))}finally{b.__wbindgen_free(j,k,W)}});c.wbg.__wbg_mark_40e050a77cc39fea=((a,b)=>{performance.mark(l(a,b))});c.wbg.__wbg_measure_aa7a73f17813f708=function(){return E(((a,c,d,e)=>{let f;let g;let h;let i;try{f=a;g=c;h=d;i=e;performance.measure(l(a,c),l(d,e))}finally{b.__wbindgen_free(f,g,W);b.__wbindgen_free(h,i,W)}}),arguments)};c.wbg.__wbg_new_abda76e883ba8a5f=(()=>{const a=new Y();return h(a)});c.wbg.__wbg_stack_658279fe44541cf6=((a,c)=>{const e=d(c).stack;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_error_f851667af71bcfc6=((a,c)=>{let d;let e;try{d=a;e=c;console.error(l(a,c))}finally{b.__wbindgen_free(d,e,W)}});c.wbg.__wbg_instanceof_WebGl2RenderingContext_6b8f92d566ced9e1=(a=>{let b;try{b=d(a) instanceof WebGL2RenderingContext}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_beginQuery_3d6bb95151ccc499=((a,b,c)=>{d(a).beginQuery(b>>>Z,d(c))});c.wbg.__wbg_bindBufferRange_e7b7d4cd65a6f94d=((a,b,c,e,f,g)=>{d(a).bindBufferRange(b>>>Z,c>>>Z,d(e),f,g)});c.wbg.__wbg_bindSampler_065f0bdf49888ff1=((a,b,c)=>{d(a).bindSampler(b>>>Z,d(c))});c.wbg.__wbg_bindVertexArray_239574d42dbbd203=((a,b)=>{d(a).bindVertexArray(d(b))});c.wbg.__wbg_blitFramebuffer_4d77c70dcb183e0c=((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).blitFramebuffer(b,c,e,f,g,h,i,j,k>>>Z,l>>>Z)});c.wbg.__wbg_bufferData_194f0914aaada840=((a,b,c,e)=>{d(a).bufferData(b>>>Z,c,e>>>Z)});c.wbg.__wbg_bufferData_c787516945ba48c2=((a,b,c,e)=>{d(a).bufferData(b>>>Z,d(c),e>>>Z)});c.wbg.__wbg_bufferSubData_7f5ddd4fdc628963=((a,b,c,e)=>{d(a).bufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_clearBufferiv_519fe97abe38622e=((a,b,c,e,f)=>{d(a).clearBufferiv(b>>>Z,c,F(e,f))});c.wbg.__wbg_clearBufferuiv_1ae6df4bc96ffe37=((a,b,c,e,f)=>{d(a).clearBufferuiv(b>>>Z,c,I(e,f))});c.wbg.__wbg_clientWaitSync_8f9f625ae9a42de6=((a,b,c,e)=>{const f=d(a).clientWaitSync(d(b),c>>>Z,e>>>Z);return f});c.wbg.__wbg_compressedTexSubImage2D_f77856eab95e8671=((a,b,c,e,f,g,h,i,j,k)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j,k)});c.wbg.__wbg_compressedTexSubImage2D_87d89d4b3f413805=((a,b,c,e,f,g,h,i,j)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,d(j))});c.wbg.__wbg_compressedTexSubImage3D_b69e67d3cd62b756=((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).compressedTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l,m)});c.wbg.__wbg_compressedTexSubImage3D_ff8eceb18a7ea2d6=((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).compressedTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,d(l))});c.wbg.__wbg_copyBufferSubData_db2c040cc06be689=((a,b,c,e,f,g)=>{d(a).copyBufferSubData(b>>>Z,c>>>Z,e,f,g)});c.wbg.__wbg_copyTexSubImage3D_0a3f60d0ee6409c7=((a,b,c,e,f,g,h,i,j,k)=>{d(a).copyTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k)});c.wbg.__wbg_createQuery_576d391ec549ed5e=(a=>{const b=d(a).createQuery();return m(b)?Z:h(b)});c.wbg.__wbg_createSampler_49de055e495fedf8=(a=>{const b=d(a).createSampler();return m(b)?Z:h(b)});c.wbg.__wbg_createVertexArray_4f450ed4d4a69acf=(a=>{const b=d(a).createVertexArray();return m(b)?Z:h(b)});c.wbg.__wbg_deleteQuery_9aaca8e15da5bc9c=((a,b)=>{d(a).deleteQuery(d(b))});c.wbg.__wbg_deleteSampler_93e35dc696f633c9=((a,b)=>{d(a).deleteSampler(d(b))});c.wbg.__wbg_deleteSync_80326e1fc23a1016=((a,b)=>{d(a).deleteSync(d(b))});c.wbg.__wbg_deleteVertexArray_67635c7fe59aa660=((a,b)=>{d(a).deleteVertexArray(d(b))});c.wbg.__wbg_drawArraysInstanced_3f02ae8708f8c4c7=((a,b,c,e,f)=>{d(a).drawArraysInstanced(b>>>Z,c,e,f)});c.wbg.__wbg_drawBuffers_6d32a0c370b9cb7f=((a,b)=>{d(a).drawBuffers(d(b))});c.wbg.__wbg_drawElementsInstanced_981861e70f6f9991=((a,b,c,e,f,g)=>{d(a).drawElementsInstanced(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_endQuery_f256667aaa2e9fac=((a,b)=>{d(a).endQuery(b>>>Z)});c.wbg.__wbg_fenceSync_f9c8da648fd4e444=((a,b,c)=>{const e=d(a).fenceSync(b>>>Z,c>>>Z);return m(e)?Z:h(e)});c.wbg.__wbg_framebufferTextureLayer_45cb5a2978de4939=((a,b,c,e,f,g)=>{d(a).framebufferTextureLayer(b>>>Z,c>>>Z,d(e),f,g)});c.wbg.__wbg_getBufferSubData_7f31bd9ec3682832=((a,b,c,e)=>{d(a).getBufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_getIndexedParameter_ad00bfb1210dbb28=function(){return E(((a,b,c)=>{const e=d(a).getIndexedParameter(b>>>Z,c>>>Z);return h(e)}),arguments)};c.wbg.__wbg_getQueryParameter_ea4da47c69182e79=((a,b,c)=>{const e=d(a).getQueryParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getSyncParameter_295178259afc15d8=((a,b,c)=>{const e=d(a).getSyncParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getUniformBlockIndex_091bee5be624ff21=((a,b,c,e)=>{const f=d(a).getUniformBlockIndex(d(b),l(c,e));return f});c.wbg.__wbg_invalidateFramebuffer_99c0131e9e958f49=function(){return E(((a,b,c)=>{d(a).invalidateFramebuffer(b>>>Z,d(c))}),arguments)};c.wbg.__wbg_readBuffer_c02ab6ce6d95c99b=((a,b)=>{d(a).readBuffer(b>>>Z)});c.wbg.__wbg_readPixels_40ba392d7aaf6ac0=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,d(i))}),arguments)};c.wbg.__wbg_readPixels_db02ea1a888b611a=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,i)}),arguments)};c.wbg.__wbg_renderbufferStorageMultisample_37c0b1b9e8a4f342=((a,b,c,e,f,g)=>{d(a).renderbufferStorageMultisample(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_samplerParameterf_f60306a8facede3e=((a,b,c,e)=>{d(a).samplerParameterf(d(b),c>>>Z,e)});c.wbg.__wbg_samplerParameteri_da5225ffbb653046=((a,b,c,e)=>{d(a).samplerParameteri(d(b),c>>>Z,e)});c.wbg.__wbg_texImage2D_2558a70047650d54=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texImage3D_7987a4b692d91b21=function(){return E(((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).texImage3D(b>>>Z,c,e,f,g,h,i,j>>>Z,k>>>Z,d(l))}),arguments)};c.wbg.__wbg_texStorage2D_0fff70234489e5a8=((a,b,c,e,f,g)=>{d(a).texStorage2D(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_texStorage3D_7d322e9790add281=((a,b,c,e,f,g,h)=>{d(a).texStorage3D(b>>>Z,c,e>>>Z,f,g,h)});c.wbg.__wbg_texSubImage2D_b4ac5eac47418cc5=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_b962ba533b866161=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,k)}),arguments)};c.wbg.__wbg_texSubImage2D_0b72a7308c3e78d3=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_8f2db7871647d37a=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_defc51298c31c0e3=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage3D_bd2fd28608206fe5=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,m)}),arguments)};c.wbg.__wbg_texSubImage3D_895cc20d45e04909=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_f75ab42a48d9b789=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_2b48a701e63f042e=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_f983428ce1099b7f=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_uniform1ui_71145d62b7bd13f4=((a,b,c)=>{d(a).uniform1ui(d(b),c>>>Z)});c.wbg.__wbg_uniform2fv_4bd352337ccc4530=((a,b,c,e)=>{d(a).uniform2fv(d(b),L(c,e))});c.wbg.__wbg_uniform2iv_829bd2f635ddf819=((a,b,c,e)=>{d(a).uniform2iv(d(b),F(c,e))});c.wbg.__wbg_uniform2uiv_6ae4fe2845703965=((a,b,c,e)=>{d(a).uniform2uiv(d(b),I(c,e))});c.wbg.__wbg_uniform3fv_3d2854c81603e498=((a,b,c,e)=>{d(a).uniform3fv(d(b),L(c,e))});c.wbg.__wbg_uniform3iv_71333eb685ad9616=((a,b,c,e)=>{d(a).uniform3iv(d(b),F(c,e))});c.wbg.__wbg_uniform3uiv_998cd5452e009d35=((a,b,c,e)=>{d(a).uniform3uiv(d(b),I(c,e))});c.wbg.__wbg_uniform4fv_39cdcce4b1acc767=((a,b,c,e)=>{d(a).uniform4fv(d(b),L(c,e))});c.wbg.__wbg_uniform4iv_f54116c4cfdcd96e=((a,b,c,e)=>{d(a).uniform4iv(d(b),F(c,e))});c.wbg.__wbg_uniform4uiv_c1b79c253aa0271f=((a,b,c,e)=>{d(a).uniform4uiv(d(b),I(c,e))});c.wbg.__wbg_uniformBlockBinding_52117c1104e3ac8a=((a,b,c,e)=>{d(a).uniformBlockBinding(d(b),c>>>Z,e>>>Z)});c.wbg.__wbg_uniformMatrix2fv_756ddcf41f02aa75=((a,b,c,e,f)=>{d(a).uniformMatrix2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix2x3fv_b11505178375085e=((a,b,c,e,f)=>{d(a).uniformMatrix2x3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix2x4fv_9a96ca1263d07814=((a,b,c,e,f)=>{d(a).uniformMatrix2x4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3fv_f26b98137276fd3d=((a,b,c,e,f)=>{d(a).uniformMatrix3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3x2fv_8e447d81dfee8f45=((a,b,c,e,f)=>{d(a).uniformMatrix3x2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3x4fv_0b4125c5150e9ebc=((a,b,c,e,f)=>{d(a).uniformMatrix3x4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4fv_5d8e0e047546456b=((a,b,c,e,f)=>{d(a).uniformMatrix4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4x2fv_15b6f3535fd4ce98=((a,b,c,e,f)=>{d(a).uniformMatrix4x2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4x3fv_5550b8543a32bbbd=((a,b,c,e,f)=>{d(a).uniformMatrix4x3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_vertexAttribDivisor_8479e8b81c913ed6=((a,b,c)=>{d(a).vertexAttribDivisor(b>>>Z,c>>>Z)});c.wbg.__wbg_vertexAttribIPointer_69f2f4bd74cf0bcb=((a,b,c,e,f,g)=>{d(a).vertexAttribIPointer(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_activeTexture_d42cec3a26e47a5b=((a,b)=>{d(a).activeTexture(b>>>Z)});c.wbg.__wbg_attachShader_2112634b3ffa9e9f=((a,b,c)=>{d(a).attachShader(d(b),d(c))});c.wbg.__wbg_bindAttribLocation_e05596ff4f5413c3=((a,b,c,e,f)=>{d(a).bindAttribLocation(d(b),c>>>Z,l(e,f))});c.wbg.__wbg_bindBuffer_90d4fb91538001d5=((a,b,c)=>{d(a).bindBuffer(b>>>Z,d(c))});c.wbg.__wbg_bindFramebuffer_4f950b884dc4be83=((a,b,c)=>{d(a).bindFramebuffer(b>>>Z,d(c))});c.wbg.__wbg_bindRenderbuffer_1e0b14f526ed7a9d=((a,b,c)=>{d(a).bindRenderbuffer(b>>>Z,d(c))});c.wbg.__wbg_bindTexture_75a698c47a923814=((a,b,c)=>{d(a).bindTexture(b>>>Z,d(c))});c.wbg.__wbg_blendColor_7d3bf5e5214b44f7=((a,b,c,e,f)=>{d(a).blendColor(b,c,e,f)});c.wbg.__wbg_blendEquation_6ca8e567e79464a4=((a,b)=>{d(a).blendEquation(b>>>Z)});c.wbg.__wbg_blendEquationSeparate_34aa4cecd02882ab=((a,b,c)=>{d(a).blendEquationSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFunc_cffe61957c92e9ac=((a,b,c)=>{d(a).blendFunc(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFuncSeparate_3c342f57887c2900=((a,b,c,e,f)=>{d(a).blendFuncSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_clear_8e2508724944df18=((a,b)=>{d(a).clear(b>>>Z)});c.wbg.__wbg_clearColor_480962bfac4e1cbd=((a,b,c,e,f)=>{d(a).clearColor(b,c,e,f)});c.wbg.__wbg_clearDepth_f5b4a73c4b8050eb=((a,b)=>{d(a).clearDepth(b)});c.wbg.__wbg_clearStencil_1e4bb9932be75fce=((a,b)=>{d(a).clearStencil(b)});c.wbg.__wbg_colorMask_21a93d0180bcbffa=((a,b,c,e,f)=>{d(a).colorMask(b!==Z,c!==Z,e!==Z,f!==Z)});c.wbg.__wbg_compileShader_f40e0c51a7a836fd=((a,b)=>{d(a).compileShader(d(b))});c.wbg.__wbg_copyTexSubImage2D_65140521b061c61b=((a,b,c,e,f,g,h,i,j)=>{d(a).copyTexSubImage2D(b>>>Z,c,e,f,g,h,i,j)});c.wbg.__wbg_createBuffer_7f57647465d111f0=(a=>{const b=d(a).createBuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createFramebuffer_8ebfde8c77472024=(a=>{const b=d(a).createFramebuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createProgram_7759fb2effb5d9b3=(a=>{const b=d(a).createProgram();return m(b)?Z:h(b)});c.wbg.__wbg_createRenderbuffer_340b1c428d564bfd=(a=>{const b=d(a).createRenderbuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createShader_b474ef421ec0f80b=((a,b)=>{const c=d(a).createShader(b>>>Z);return m(c)?Z:h(c)});c.wbg.__wbg_createTexture_18b4a88c14cb086e=(a=>{const b=d(a).createTexture();return m(b)?Z:h(b)});c.wbg.__wbg_cullFace_fe427cdf8d0ea4e2=((a,b)=>{d(a).cullFace(b>>>Z)});c.wbg.__wbg_deleteBuffer_fca5d765302c9a4e=((a,b)=>{d(a).deleteBuffer(d(b))});c.wbg.__wbg_deleteFramebuffer_da681ed1dfa6d543=((a,b)=>{d(a).deleteFramebuffer(d(b))});c.wbg.__wbg_deleteProgram_a06d69620332cc70=((a,b)=>{d(a).deleteProgram(d(b))});c.wbg.__wbg_deleteRenderbuffer_5dcdde247a392125=((a,b)=>{d(a).deleteRenderbuffer(d(b))});c.wbg.__wbg_deleteShader_138a810cc0ca9986=((a,b)=>{d(a).deleteShader(d(b))});c.wbg.__wbg_deleteTexture_eae7abcfa3015f09=((a,b)=>{d(a).deleteTexture(d(b))});c.wbg.__wbg_depthFunc_5527d3ee35e25a8d=((a,b)=>{d(a).depthFunc(b>>>Z)});c.wbg.__wbg_depthMask_9120207d491c649a=((a,b)=>{d(a).depthMask(b!==Z)});c.wbg.__wbg_depthRange_d8d5ad00fd133fc0=((a,b,c)=>{d(a).depthRange(b,c)});c.wbg.__wbg_disable_f0ef6e9a7ac6ddd7=((a,b)=>{d(a).disable(b>>>Z)});c.wbg.__wbg_disableVertexAttribArray_e4f458e34e54fe78=((a,b)=>{d(a).disableVertexAttribArray(b>>>Z)});c.wbg.__wbg_drawArrays_5bf0d92947e472af=((a,b,c,e)=>{d(a).drawArrays(b>>>Z,c,e)});c.wbg.__wbg_enable_8b3019da8846ce76=((a,b)=>{d(a).enable(b>>>Z)});c.wbg.__wbg_enableVertexAttribArray_9d7b7e199f86e09b=((a,b)=>{d(a).enableVertexAttribArray(b>>>Z)});c.wbg.__wbg_framebufferRenderbuffer_0144c6e35e2edb19=((a,b,c,e,f)=>{d(a).framebufferRenderbuffer(b>>>Z,c>>>Z,e>>>Z,d(f))});c.wbg.__wbg_framebufferTexture2D_a6ad7148f7983ae6=((a,b,c,e,f,g)=>{d(a).framebufferTexture2D(b>>>Z,c>>>Z,e>>>Z,d(f),g)});c.wbg.__wbg_frontFace_41ab8e7ce3e48cae=((a,b)=>{d(a).frontFace(b>>>Z)});c.wbg.__wbg_getExtension_bef4112494c87f34=function(){return E(((a,b,c)=>{const e=d(a).getExtension(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_getParameter_aa9af66884d2b210=function(){return E(((a,b)=>{const c=d(a).getParameter(b>>>Z);return h(c)}),arguments)};c.wbg.__wbg_getProgramInfoLog_4d189135f8d5a2de=((a,c,e)=>{const f=d(c).getProgramInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getProgramParameter_7b04ca71a79d9047=((a,b,c)=>{const e=d(a).getProgramParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getShaderInfoLog_d5de3e4eab06fc46=((a,c,e)=>{const f=d(c).getShaderInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getShaderParameter_4ddb51279bb1500b=((a,b,c)=>{const e=d(a).getShaderParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getSupportedExtensions_7a174085f9e1983a=(a=>{const b=d(a).getSupportedExtensions();return m(b)?Z:h(b)});c.wbg.__wbg_getUniformLocation_51ec30e3755e574d=((a,b,c,e)=>{const f=d(a).getUniformLocation(d(b),l(c,e));return m(f)?Z:h(f)});c.wbg.__wbg_linkProgram_eabc664217816e72=((a,b)=>{d(a).linkProgram(d(b))});c.wbg.__wbg_pixelStorei_162a23ba7872b886=((a,b,c)=>{d(a).pixelStorei(b>>>Z,c)});c.wbg.__wbg_polygonOffset_9f20aa27db3ea0a2=((a,b,c)=>{d(a).polygonOffset(b,c)});c.wbg.__wbg_renderbufferStorage_ff5740fb95ecf231=((a,b,c,e,f)=>{d(a).renderbufferStorage(b>>>Z,c>>>Z,e,f)});c.wbg.__wbg_scissor_726eea865bbd6809=((a,b,c,e,f)=>{d(a).scissor(b,c,e,f)});c.wbg.__wbg_shaderSource_7943d06f24862a3b=((a,b,c,e)=>{d(a).shaderSource(d(b),l(c,e))});c.wbg.__wbg_stencilFuncSeparate_c16750a621e43580=((a,b,c,e,f)=>{d(a).stencilFuncSeparate(b>>>Z,c>>>Z,e,f>>>Z)});c.wbg.__wbg_stencilMask_9abfc669d9c2a893=((a,b)=>{d(a).stencilMask(b>>>Z)});c.wbg.__wbg_stencilMaskSeparate_a1f8f805de62aac5=((a,b,c)=>{d(a).stencilMaskSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_stencilOpSeparate_2f2cc25254360270=((a,b,c,e,f)=>{d(a).stencilOpSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_texParameteri_8f70dffce11d7da1=((a,b,c,e)=>{d(a).texParameteri(b>>>Z,c>>>Z,e)});c.wbg.__wbg_uniform1f_9b9e5339e7560722=((a,b,c)=>{d(a).uniform1f(d(b),c)});c.wbg.__wbg_uniform1i_bdcd75be097285e6=((a,b,c)=>{d(a).uniform1i(d(b),c)});c.wbg.__wbg_uniform4f_b143081575a3bb56=((a,b,c,e,f,g)=>{d(a).uniform4f(d(b),c,e,f,g)});c.wbg.__wbg_useProgram_757fab437af29c20=((a,b)=>{d(a).useProgram(d(b))});c.wbg.__wbg_vertexAttribPointer_4416f0325c02aa13=((a,b,c,e,f,g,h)=>{d(a).vertexAttribPointer(b>>>Z,c,e>>>Z,f!==Z,g,h)});c.wbg.__wbg_viewport_7414e7e2a83afc72=((a,b,c,e,f)=>{d(a).viewport(b,c,e,f)});c.wbg.__wbg_instanceof_Window_f401953a2cf86220=(a=>{let b;try{b=d(a) instanceof Window}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_document_5100775d18896c16=(a=>{const b=d(a).document;return m(b)?Z:h(b)});c.wbg.__wbg_navigator_6c8fa55c5cc8796e=(a=>{const b=d(a).navigator;return h(b)});c.wbg.__wbg_devicePixelRatio_efc553b59506f64c=(a=>{const b=d(a).devicePixelRatio;return b});c.wbg.__wbg_isSecureContext_3dd59a5324a1c6d5=(a=>{const b=d(a).isSecureContext;return b});c.wbg.__wbg_cancelIdleCallback_3a36cf77475b492b=((a,b)=>{d(a).cancelIdleCallback(b>>>Z)});c.wbg.__wbg_getComputedStyle_078292ffe423aded=function(){return E(((a,b)=>{const c=d(a).getComputedStyle(d(b));return m(c)?Z:h(c)}),arguments)};c.wbg.__wbg_matchMedia_66bb21e3ef19270c=function(){return E(((a,b,c)=>{const e=d(a).matchMedia(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_open_cc82b8aaf0c296c1=function(){return E(((a,b,c,e,f)=>{const g=d(a).open(l(b,c),l(e,f));return m(g)?Z:h(g)}),arguments)};c.wbg.__wbg_requestIdleCallback_cee8e1d6bdcfae9e=function(){return E(((a,b)=>{const c=d(a).requestIdleCallback(d(b));return c}),arguments)};c.wbg.__wbg_cancelAnimationFrame_111532f326e480af=function(){return E(((a,b)=>{d(a).cancelAnimationFrame(b)}),arguments)};c.wbg.__wbg_requestAnimationFrame_549258cfa66011f0=function(){return E(((a,b)=>{const c=d(a).requestAnimationFrame(d(b));return c}),arguments)};c.wbg.__wbg_clearTimeout_ba63ae54a36e111e=((a,b)=>{d(a).clearTimeout(b)});c.wbg.__wbg_fetch_5aed618e85a9cc28=((a,b,c)=>{const e=d(a).fetch(l(b,c));return h(e)});c.wbg.__wbg_setTimeout_d2b9a986d10a6182=function(){return E(((a,b)=>{const c=d(a).setTimeout(d(b));return c}),arguments)};c.wbg.__wbg_setTimeout_c172d5704ef82276=function(){return E(((a,b,c)=>{const e=d(a).setTimeout(d(b),c);return e}),arguments)};c.wbg.__wbg_body_edb1908d3ceff3a1=(a=>{const b=d(a).body;return m(b)?Z:h(b)});c.wbg.__wbg_visibilityState_990071edf70b1c55=(a=>{const b=d(a).visibilityState;return h(b)});c.wbg.__wbg_activeElement_fa7feca08f5028c0=(a=>{const b=d(a).activeElement;return m(b)?Z:h(b)});c.wbg.__wbg_fullscreenElement_1bef71098bd8dfde=(a=>{const b=d(a).fullscreenElement;return m(b)?Z:h(b)});c.wbg.__wbg_createElement_8bae7856a4bb7411=function(){return E(((a,b,c)=>{const e=d(a).createElement(l(b,c));return h(e)}),arguments)};c.wbg.__wbg_exitFullscreen_5679ad2b002921bd=(a=>{d(a).exitFullscreen()});c.wbg.__wbg_exitPointerLock_b62fe3c7830470e4=(a=>{d(a).exitPointerLock()});c.wbg.__wbg_querySelector_a5f74efc5fa193dd=function(){return E(((a,b,c)=>{const e=d(a).querySelector(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_getBoundingClientRect_91e6d57c4e65f745=(a=>{const b=d(a).getBoundingClientRect();return h(b)});c.wbg.__wbg_requestPointerLock_78b2a4a24cb69366=(a=>{d(a).requestPointerLock()});c.wbg.__wbg_setAttribute_3c9f6c303b696daa=function(){return E(((a,b,c,e,f)=>{d(a).setAttribute(l(b,c),l(e,f))}),arguments)};c.wbg.__wbg_setPointerCapture_0fdaad7a916c8486=function(){return E(((a,b)=>{d(a).setPointerCapture(b)}),arguments)};c.wbg.__wbg_bufferData_bb9321e8fa042bac=((a,b,c,e)=>{d(a).bufferData(b>>>Z,c,e>>>Z)});c.wbg.__wbg_bufferData_5d1e6b8eaa7d23c8=((a,b,c,e)=>{d(a).bufferData(b>>>Z,d(c),e>>>Z)});c.wbg.__wbg_bufferSubData_a6cea5e056662bd7=((a,b,c,e)=>{d(a).bufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_compressedTexSubImage2D_db8b170a99900aff=((a,b,c,e,f,g,h,i,j)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,d(j))});c.wbg.__wbg_readPixels_551d0505625c865b=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,d(i))}),arguments)};c.wbg.__wbg_texImage2D_a14a3c7863e25c89=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_55a407e48f3a5cb4=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_uniform2fv_dcb8b73e2637092a=((a,b,c,e)=>{d(a).uniform2fv(d(b),L(c,e))});c.wbg.__wbg_uniform2iv_fc73855d9dec793a=((a,b,c,e)=>{d(a).uniform2iv(d(b),F(c,e))});c.wbg.__wbg_uniform3fv_3e32c897d3ed1eaa=((a,b,c,e)=>{d(a).uniform3fv(d(b),L(c,e))});c.wbg.__wbg_uniform3iv_2b3fa9d97dff01a2=((a,b,c,e)=>{d(a).uniform3iv(d(b),F(c,e))});c.wbg.__wbg_uniform4fv_980ce05d950ee599=((a,b,c,e)=>{d(a).uniform4fv(d(b),L(c,e))});c.wbg.__wbg_uniform4iv_f112dcc4401f5469=((a,b,c,e)=>{d(a).uniform4iv(d(b),F(c,e))});c.wbg.__wbg_uniformMatrix2fv_4417ed4d88a140be=((a,b,c,e,f)=>{d(a).uniformMatrix2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3fv_d46553a1248946b5=((a,b,c,e,f)=>{d(a).uniformMatrix3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4fv_cd46ed81bccb0cb2=((a,b,c,e,f)=>{d(a).uniformMatrix4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_activeTexture_5f084e1b3f14853e=((a,b)=>{d(a).activeTexture(b>>>Z)});c.wbg.__wbg_attachShader_6397dc4fd87343d3=((a,b,c)=>{d(a).attachShader(d(b),d(c))});c.wbg.__wbg_bindAttribLocation_7ab87f5815dce9f0=((a,b,c,e,f)=>{d(a).bindAttribLocation(d(b),c>>>Z,l(e,f))});c.wbg.__wbg_bindBuffer_1e5043751efddd4f=((a,b,c)=>{d(a).bindBuffer(b>>>Z,d(c))});c.wbg.__wbg_bindFramebuffer_c301d73a2c2842bb=((a,b,c)=>{d(a).bindFramebuffer(b>>>Z,d(c))});c.wbg.__wbg_bindRenderbuffer_8ec7d02bd60bdfb2=((a,b,c)=>{d(a).bindRenderbuffer(b>>>Z,d(c))});c.wbg.__wbg_bindTexture_772f5eb022019d87=((a,b,c)=>{d(a).bindTexture(b>>>Z,d(c))});c.wbg.__wbg_blendColor_f25a274ecd388a1e=((a,b,c,e,f)=>{d(a).blendColor(b,c,e,f)});c.wbg.__wbg_blendEquation_a442d97b5c6efedb=((a,b)=>{d(a).blendEquation(b>>>Z)});c.wbg.__wbg_blendEquationSeparate_721f30ba584a5233=((a,b,c)=>{d(a).blendEquationSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFunc_fc4b298f39801a9c=((a,b,c)=>{d(a).blendFunc(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFuncSeparate_abe2ad4272c8365e=((a,b,c,e,f)=>{d(a).blendFuncSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_clear_f9731a47df2e70d8=((a,b)=>{d(a).clear(b>>>Z)});c.wbg.__wbg_clearColor_42707553c40e0e0f=((a,b,c,e,f)=>{d(a).clearColor(b,c,e,f)});c.wbg.__wbg_clearDepth_42ac48f2ab25c419=((a,b)=>{d(a).clearDepth(b)});c.wbg.__wbg_clearStencil_0f906e2d8b61aa7a=((a,b)=>{d(a).clearStencil(b)});c.wbg.__wbg_colorMask_03aa359acc86fd70=((a,b,c,e,f)=>{d(a).colorMask(b!==Z,c!==Z,e!==Z,f!==Z)});c.wbg.__wbg_compileShader_3af4719dfdb508e3=((a,b)=>{d(a).compileShader(d(b))});c.wbg.__wbg_copyTexSubImage2D_0e21b1e1089c410a=((a,b,c,e,f,g,h,i,j)=>{d(a).copyTexSubImage2D(b>>>Z,c,e,f,g,h,i,j)});c.wbg.__wbg_createBuffer_34e01f5c10929b41=(a=>{const b=d(a).createBuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createFramebuffer_49ca64e9e1c6f5eb=(a=>{const b=d(a).createFramebuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createProgram_9affbfa62b7b2608=(a=>{const b=d(a).createProgram();return m(b)?Z:h(b)});c.wbg.__wbg_createRenderbuffer_375d7f4004bc49bd=(a=>{const b=d(a).createRenderbuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createShader_55ca04b44164bd41=((a,b)=>{const c=d(a).createShader(b>>>Z);return m(c)?Z:h(c)});c.wbg.__wbg_createTexture_c13c31b2b132c17f=(a=>{const b=d(a).createTexture();return m(b)?Z:h(b)});c.wbg.__wbg_cullFace_af37bb1c2d22ab73=((a,b)=>{d(a).cullFace(b>>>Z)});c.wbg.__wbg_deleteBuffer_96df38349e3487d2=((a,b)=>{d(a).deleteBuffer(d(b))});c.wbg.__wbg_deleteFramebuffer_417b62b6156d4894=((a,b)=>{d(a).deleteFramebuffer(d(b))});c.wbg.__wbg_deleteProgram_641402f7551587d8=((a,b)=>{d(a).deleteProgram(d(b))});c.wbg.__wbg_deleteRenderbuffer_d3aedb394b1ea546=((a,b)=>{d(a).deleteRenderbuffer(d(b))});c.wbg.__wbg_deleteShader_e5c778f25b722e68=((a,b)=>{d(a).deleteShader(d(b))});c.wbg.__wbg_deleteTexture_f89d8e417b156960=((a,b)=>{d(a).deleteTexture(d(b))});c.wbg.__wbg_depthFunc_1ee4bf1e0127bf7f=((a,b)=>{d(a).depthFunc(b>>>Z)});c.wbg.__wbg_depthMask_dd6cd8a9aff90e5c=((a,b)=>{d(a).depthMask(b!==Z)});c.wbg.__wbg_depthRange_7e521414b51cf5de=((a,b,c)=>{d(a).depthRange(b,c)});c.wbg.__wbg_disable_5dd8c3842de93e92=((a,b)=>{d(a).disable(b>>>Z)});c.wbg.__wbg_disableVertexAttribArray_12bc9adefa738796=((a,b)=>{d(a).disableVertexAttribArray(b>>>Z)});c.wbg.__wbg_drawArrays_f619a26a53ab5ab3=((a,b,c,e)=>{d(a).drawArrays(b>>>Z,c,e)});c.wbg.__wbg_enable_7abe812a71c76206=((a,b)=>{d(a).enable(b>>>Z)});c.wbg.__wbg_enableVertexAttribArray_6d44444aa994f42a=((a,b)=>{d(a).enableVertexAttribArray(b>>>Z)});c.wbg.__wbg_framebufferRenderbuffer_e1c9c64aea848b39=((a,b,c,e,f)=>{d(a).framebufferRenderbuffer(b>>>Z,c>>>Z,e>>>Z,d(f))});c.wbg.__wbg_framebufferTexture2D_66e1968fd5b7b3e3=((a,b,c,e,f,g)=>{d(a).framebufferTexture2D(b>>>Z,c>>>Z,e>>>Z,d(f),g)});c.wbg.__wbg_frontFace_bb8a1ded6f52865e=((a,b)=>{d(a).frontFace(b>>>Z)});c.wbg.__wbg_getParameter_a77768abe8a51f24=function(){return E(((a,b)=>{const c=d(a).getParameter(b>>>Z);return h(c)}),arguments)};c.wbg.__wbg_getProgramInfoLog_bf1fba8fa90667c7=((a,c,e)=>{const f=d(c).getProgramInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getProgramParameter_10c8a43809fb8c2e=((a,b,c)=>{const e=d(a).getProgramParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getShaderInfoLog_0262cb299092ce92=((a,c,e)=>{const f=d(c).getShaderInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getShaderParameter_60b69083e8d662ce=((a,b,c)=>{const e=d(a).getShaderParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getUniformLocation_6eedfb513ccce732=((a,b,c,e)=>{const f=d(a).getUniformLocation(d(b),l(c,e));return m(f)?Z:h(f)});c.wbg.__wbg_linkProgram_af5fed9dc3f1cdf9=((a,b)=>{d(a).linkProgram(d(b))});c.wbg.__wbg_pixelStorei_054e50b5fdc17824=((a,b,c)=>{d(a).pixelStorei(b>>>Z,c)});c.wbg.__wbg_polygonOffset_2927e355350d4327=((a,b,c)=>{d(a).polygonOffset(b,c)});c.wbg.__wbg_renderbufferStorage_f41b3c99f6a8f25e=((a,b,c,e,f)=>{d(a).renderbufferStorage(b>>>Z,c>>>Z,e,f)});c.wbg.__wbg_scissor_75ba2245d4db0eaf=((a,b,c,e,f)=>{d(a).scissor(b,c,e,f)});c.wbg.__wbg_shaderSource_7891a1fcb69a0023=((a,b,c,e)=>{d(a).shaderSource(d(b),l(c,e))});c.wbg.__wbg_stencilFuncSeparate_a3699f92e69c1494=((a,b,c,e,f)=>{d(a).stencilFuncSeparate(b>>>Z,c>>>Z,e,f>>>Z)});c.wbg.__wbg_stencilMask_c5ad44ea27c5f169=((a,b)=>{d(a).stencilMask(b>>>Z)});c.wbg.__wbg_stencilMaskSeparate_a7830b1e1eabf5bd=((a,b,c)=>{d(a).stencilMaskSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_stencilOpSeparate_321604240216c55c=((a,b,c,e,f)=>{d(a).stencilOpSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_texParameteri_d1035ed45d6c5655=((a,b,c,e)=>{d(a).texParameteri(b>>>Z,c>>>Z,e)});c.wbg.__wbg_uniform1f_8914cb45b3ad5887=((a,b,c)=>{d(a).uniform1f(d(b),c)});c.wbg.__wbg_uniform1i_badd5ff70c0d30bf=((a,b,c)=>{d(a).uniform1i(d(b),c)});c.wbg.__wbg_uniform4f_fb56c7f4de64dd4c=((a,b,c,e,f,g)=>{d(a).uniform4f(d(b),c,e,f,g)});c.wbg.__wbg_useProgram_c637e43f9cd4c07a=((a,b)=>{d(a).useProgram(d(b))});c.wbg.__wbg_vertexAttribPointer_c25e4c5ed17f8a1d=((a,b,c,e,f,g,h)=>{d(a).vertexAttribPointer(b>>>Z,c,e>>>Z,f!==Z,g,h)});c.wbg.__wbg_viewport_221ade2aef6032c8=((a,b,c,e,f)=>{d(a).viewport(b,c,e,f)});c.wbg.__wbg_style_c3fc3dd146182a2d=(a=>{const b=d(a).style;return h(b)});c.wbg.__wbg_focus_39d4b8ba8ff9df14=function(){return E((a=>{d(a).focus()}),arguments)};c.wbg.__wbg_error_6e987ee48d9fdf45=((a,b)=>{console.error(d(a),d(b))});c.wbg.__wbg_instanceof_HtmlCanvasElement_46bdbf323b0b18d1=(a=>{let b;try{b=d(a) instanceof HTMLCanvasElement}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_width_aee8b8809b033b05=(a=>{const b=d(a).width;return b});c.wbg.__wbg_setwidth_080107476e633963=((a,b)=>{d(a).width=b>>>Z});c.wbg.__wbg_height_80053d3c71b338e0=(a=>{const b=d(a).height;return b});c.wbg.__wbg_setheight_dc240617639f1f51=((a,b)=>{d(a).height=b>>>Z});c.wbg.__wbg_getContext_fec464290556673c=function(){return E(((a,b,c,e)=>{const f=d(a).getContext(l(b,c),d(e));return m(f)?Z:h(f)}),arguments)};c.wbg.__wbg_new_4e95a9abecc83cd4=function(){return E((a=>{const b=new IntersectionObserver(d(a));return h(b)}),arguments)};c.wbg.__wbg_disconnect_e694940ce6d0ef91=(a=>{d(a).disconnect()});c.wbg.__wbg_observe_538a6d1df0deb993=((a,b)=>{d(a).observe(d(b))});c.wbg.__wbg_isIntersecting_082397a1d66e2e35=(a=>{const b=d(a).isIntersecting;return b});c.wbg.__wbg_appendChild_580ccb11a660db68=function(){return E(((a,b)=>{const c=d(a).appendChild(d(b));return h(c)}),arguments)};c.wbg.__wbg_contains_fdfd1dc667f36695=((a,b)=>{const c=d(a).contains(d(b));return c});c.wbg.__wbg_contentRect_bce644376332c7a5=(a=>{const b=d(a).contentRect;return h(b)});c.wbg.__wbg_devicePixelContentBoxSize_d5bcdcd5e96671f3=(a=>{const b=d(a).devicePixelContentBoxSize;return h(b)});c.wbg.__wbg_drawArraysInstancedANGLE_6afae595a484db93=((a,b,c,e,f)=>{d(a).drawArraysInstancedANGLE(b>>>Z,c,e,f)});c.wbg.__wbg_drawElementsInstancedANGLE_f175a178d553357e=((a,b,c,e,f,g)=>{d(a).drawElementsInstancedANGLE(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_vertexAttribDivisorANGLE_b258d7388e466921=((a,b,c)=>{d(a).vertexAttribDivisorANGLE(b>>>Z,c>>>Z)});c.wbg.__wbg_copyToChannel_c5200b51ff33f8a3=function(){return E(((a,b,c,e)=>{d(a).copyToChannel(L(b,c),e)}),arguments)};c.wbg.__wbg_media_bcef0e2ec4383569=((a,c)=>{const e=d(c).media;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_matches_e14ed9ff8291cf24=(a=>{const b=d(a).matches;return b});c.wbg.__wbg_addListener_143ad0a501fabc3a=function(){return E(((a,b)=>{d(a).addListener(d(b))}),arguments)};c.wbg.__wbg_removeListener_46f3ee00c5b95320=function(){return E(((a,b)=>{d(a).removeListener(d(b))}),arguments)};c.wbg.__wbg_setonmessage_93bdba94dcd46c04=((a,b)=>{d(a).onmessage=d(b)});c.wbg.__wbg_close_a5883ed21dc3d115=(a=>{d(a).close()});c.wbg.__wbg_postMessage_fbddfe9314af804e=function(){return E(((a,b)=>{d(a).postMessage(d(b))}),arguments)};c.wbg.__wbg_start_5a293222bc398f51=(a=>{d(a).start()});c.wbg.__wbg_ctrlKey_008695ce60a588f5=(a=>{const b=d(a).ctrlKey;return b});c.wbg.__wbg_shiftKey_1e76dbfcdd36a4b4=(a=>{const b=d(a).shiftKey;return b});c.wbg.__wbg_altKey_07da841b54bd3ed6=(a=>{const b=d(a).altKey;return b});c.wbg.__wbg_metaKey_86bfd3b0d3a8083f=(a=>{const b=d(a).metaKey;return b});c.wbg.__wbg_button_367cdc7303e3cf9b=(a=>{const b=d(a).button;return b});c.wbg.__wbg_buttons_d004fa75ac704227=(a=>{const b=d(a).buttons;return b});c.wbg.__wbg_movementX_b800a0cacd14d9bf=(a=>{const b=d(a).movementX;return b});c.wbg.__wbg_movementY_7907e03eb8c0ea1e=(a=>{const b=d(a).movementY;return b});c.wbg.__wbg_persisted_cbb7e3c657029516=(a=>{const b=d(a).persisted;return b});c.wbg.__wbg_deltaX_206576827ededbe5=(a=>{const b=d(a).deltaX;return b});c.wbg.__wbg_deltaY_032e327e216f2b2b=(a=>{const b=d(a).deltaY;return b});c.wbg.__wbg_deltaMode_294b2eaf54047265=(a=>{const b=d(a).deltaMode;return b});c.wbg.__wbg_setchannelCount_e4575f9fe161ad45=((a,b)=>{d(a).channelCount=b>>>Z});c.wbg.__wbg_connect_186433827476e7d8=function(){return E(((a,b)=>{const c=d(a).connect(d(b));return h(c)}),arguments)};c.wbg.__wbg_x_c0e76d143979338a=(a=>{const b=d(a).x;return b});c.wbg.__wbg_y_047a9fda606ab8ef=(a=>{const b=d(a).y;return b});c.wbg.__wbg_altKey_2e6c34c37088d8b1=(a=>{const b=d(a).altKey;return b});c.wbg.__wbg_ctrlKey_bb5b6fef87339703=(a=>{const b=d(a).ctrlKey;return b});c.wbg.__wbg_shiftKey_5911baf439ab232b=(a=>{const b=d(a).shiftKey;return b});c.wbg.__wbg_metaKey_6bf4ae4e83a11278=(a=>{const b=d(a).metaKey;return b});c.wbg.__wbg_location_f7b033ddfc516739=(a=>{const b=d(a).location;return b});c.wbg.__wbg_repeat_f64b916c6eed0685=(a=>{const b=d(a).repeat;return b});c.wbg.__wbg_key_dccf9e8aa1315a8e=((a,c)=>{const e=d(c).key;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_code_3b0c3912a2351163=((a,c)=>{const e=d(c).code;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_port1_d51a1bd2c33125d0=(a=>{const b=d(a).port1;return h(b)});c.wbg.__wbg_port2_f522a81e92362e7e=(a=>{const b=d(a).port2;return h(b)});c.wbg.__wbg_new_34615e164dc78975=function(){return E((()=>{const a=new MessageChannel();return h(a)}),arguments)};c.wbg.__wbg_pointerId_e030fa156647fedd=(a=>{const b=d(a).pointerId;return b});c.wbg.__wbg_pressure_99cd07399f942a7c=(a=>{const b=d(a).pressure;return b});c.wbg.__wbg_pointerType_0f2f0383406aa7fa=((a,c)=>{const e=d(c).pointerType;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_getCoalescedEvents_14b443b6f75837a2=(a=>{const b=d(a).getCoalescedEvents();return h(b)});c.wbg.__wbg_getPropertyValue_fa32ee1811f224cb=function(){return E(((a,c,e,f)=>{const g=d(c).getPropertyValue(l(e,f));const h=u(g,b.__wbindgen_malloc,b.__wbindgen_realloc);const i=r;q()[a/a7+ W]=i;q()[a/a7+ Z]=h}),arguments)};c.wbg.__wbg_removeProperty_fa6d48e2923dcfac=function(){return E(((a,c,e,f)=>{const g=d(c).removeProperty(l(e,f));const h=u(g,b.__wbindgen_malloc,b.__wbindgen_realloc);const i=r;q()[a/a7+ W]=i;q()[a/a7+ Z]=h}),arguments)};c.wbg.__wbg_setProperty_ea7d15a2b591aa97=function(){return E(((a,b,c,e,f)=>{d(a).setProperty(l(b,c),l(e,f))}),arguments)};c.wbg.__wbg_videoWidth_f0b751704b53672c=(a=>{const b=d(a).videoWidth;return b});c.wbg.__wbg_videoHeight_e75550285bbbfdab=(a=>{const b=d(a).videoHeight;return b});c.wbg.__wbg_width_6aa39fc77f088914=(a=>{const b=d(a).width;return b});c.wbg.__wbg_setwidth_83d936c4b04dcbec=((a,b)=>{d(a).width=b>>>Z});c.wbg.__wbg_height_05a87854adf24d83=(a=>{const b=d(a).height;return b});c.wbg.__wbg_setheight_6025ba0d58e6cc8c=((a,b)=>{d(a).height=b>>>Z});c.wbg.__wbg_getContext_c9fc178d1fa6f8fe=function(){return E(((a,b,c,e)=>{const f=d(a).getContext(l(b,c),d(e));return m(f)?Z:h(f)}),arguments)};c.wbg.__wbg_signal_a61f78a3478fd9bc=(a=>{const b=d(a).signal;return h(b)});c.wbg.__wbg_new_0d76b0581eca6298=function(){return E((()=>{const a=new AbortController();return h(a)}),arguments)};c.wbg.__wbg_abort_2aa7521d5690750e=(a=>{d(a).abort()});c.wbg.__wbg_setbuffer_1793c076d39c6617=((a,b)=>{d(a).buffer=d(b)});c.wbg.__wbg_setonended_ad220d8d48b1642c=((a,b)=>{d(a).onended=d(b)});c.wbg.__wbg_start_07ac75070dcdd1a2=function(){return E(((a,b)=>{d(a).start(b)}),arguments)};c.wbg.__wbg_addEventListener_53b787075bd5e003=function(){return E(((a,b,c,e)=>{d(a).addEventListener(l(b,c),d(e))}),arguments)};c.wbg.__wbg_removeEventListener_92cb9b3943463338=function(){return E(((a,b,c,e)=>{d(a).removeEventListener(l(b,c),d(e))}),arguments)};c.wbg.__wbg_pressed_8ce1dba50075450f=(a=>{const b=d(a).pressed;return b});c.wbg.__wbg_value_e2e2cdd91a28c650=(a=>{const b=d(a).value;return b});c.wbg.__wbg_bindVertexArrayOES_abe2fd389c6a2f56=((a,b)=>{d(a).bindVertexArrayOES(d(b))});c.wbg.__wbg_createVertexArrayOES_886be8a08db32ce6=(a=>{const b=d(a).createVertexArrayOES();return m(b)?Z:h(b)});c.wbg.__wbg_deleteVertexArrayOES_153f352862874f30=((a,b)=>{d(a).deleteVertexArrayOES(d(b))});c.wbg.__wbg_inlineSize_ff0e40258cefeba2=(a=>{const b=d(a).inlineSize;return b});c.wbg.__wbg_blockSize_73f4e5608c08713d=(a=>{const b=d(a).blockSize;return b});c.wbg.__wbg_destination_0014df38da590ed6=(a=>{const b=d(a).destination;return h(b)});c.wbg.__wbg_currentTime_9bc85e1579050a3f=(a=>{const b=d(a).currentTime;return b});c.wbg.__wbg_newwithcontextoptions_cd911d6d2ece88e4=function(){return E((b=>{const c=new a(d(b));return h(c)}),arguments)};c.wbg.__wbg_close_72f0f505a65b831b=function(){return E((a=>{const b=d(a).close();return h(b)}),arguments)};c.wbg.__wbg_createBuffer_2db05bc15a2e2745=function(){return E(((a,b,c,e)=>{const f=d(a).createBuffer(b>>>Z,c>>>Z,e);return h(f)}),arguments)};c.wbg.__wbg_createBufferSource_0d65cd58ccd38511=function(){return E((a=>{const b=d(a).createBufferSource();return h(b)}),arguments)};c.wbg.__wbg_resume_cda1a6cb84e7cf47=function(){return E((a=>{const b=d(a).resume();return h(b)}),arguments)};c.wbg.__wbg_instanceof_DomException_b276ad070353116f=(a=>{let b;try{b=d(a) instanceof DOMException}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_message_c539585471131985=((a,c)=>{const e=d(c).message;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_instanceof_Response_849eb93e75734b6e=(a=>{let b;try{b=d(a) instanceof Response}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_status_61a01141acd3cf74=(a=>{const b=d(a).status;return b});c.wbg.__wbg_arrayBuffer_29931d52c7206b02=function(){return E((a=>{const b=d(a).arrayBuffer();return h(b)}),arguments)};c.wbg.__wbg_drawBuffersWEBGL_4c663e042e093892=((a,b)=>{d(a).drawBuffersWEBGL(d(b))});c.wbg.__wbg_preventDefault_b1a4aafc79409429=(a=>{d(a).preventDefault()});c.wbg.__wbg_id_37ec709c32c9fbba=((a,c)=>{const e=d(c).id;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_index_6496f9ffb375b0b0=(a=>{const b=d(a).index;return b});c.wbg.__wbg_mapping_9abc7f90b7413b6f=(a=>{const b=d(a).mapping;return h(b)});c.wbg.__wbg_connected_24640dcb98642477=(a=>{const b=d(a).connected;return b});c.wbg.__wbg_buttons_3aabea55baa2acb8=(a=>{const b=d(a).buttons;return h(b)});c.wbg.__wbg_axes_23d02bdd88605707=(a=>{const b=d(a).axes;return h(b)});c.wbg.__wbg_userAgent_e94c7cbcdac01fea=function(){return E(((a,c)=>{const e=d(c).userAgent;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f}),arguments)};c.wbg.__wbg_getGamepads_50300c1f61632118=function(){return E((a=>{const b=d(a).getGamepads();return h(b)}),arguments)};c.wbg.__wbg_framebufferTextureMultiviewOVR_a4eb1a11052508f4=((a,b,c,e,f,g,h)=>{d(a).framebufferTextureMultiviewOVR(b>>>Z,c>>>Z,d(e),f,g,h)});c.wbg.__wbg_new_61d4f20a1c08a45c=function(){return E((a=>{const b=new ResizeObserver(d(a));return h(b)}),arguments)};c.wbg.__wbg_disconnect_6675f32e2ae8deb7=(a=>{d(a).disconnect()});c.wbg.__wbg_observe_a79646ce7bb08cb8=((a,b)=>{d(a).observe(d(b))});c.wbg.__wbg_observe_dc0ebcd59ee7cd17=((a,b,c)=>{d(a).observe(d(b),d(c))});c.wbg.__wbg_unobserve_55c93518cad6ac06=((a,b)=>{d(a).unobserve(d(b))});c.wbg.__wbg_getSupportedProfiles_904a0392ad42295b=(a=>{const b=d(a).getSupportedProfiles();return m(b)?Z:h(b)});c.wbg.__wbg_maxChannelCount_f1628437dca322e3=(a=>{const b=d(a).maxChannelCount;return b});c.wbg.__wbg_width_1e8430024cb82aba=(a=>{const b=d(a).width;return b});c.wbg.__wbg_height_0c1394f089d7bb71=(a=>{const b=d(a).height;return b});c.wbg.__wbg_width_0e2f1c393242f16e=(a=>{const b=d(a).width;return b});c.wbg.__wbg_height_d6c8a3041eff461a=(a=>{const b=d(a).height;return b});c.wbg.__wbg_queueMicrotask_481971b0d87f3dd4=(a=>{queueMicrotask(d(a))});c.wbg.__wbg_queueMicrotask_3cbae2ec6b6cd3d6=(a=>{const b=d(a).queueMicrotask;return h(b)});c.wbg.__wbindgen_is_function=(a=>{const b=typeof d(a)===a0;return b});c.wbg.__wbg_performance_eeefc685c9bc38b4=(a=>{const b=d(a).performance;return h(b)});c.wbg.__wbg_now_e0d8ec93dd25766a=(a=>{const b=d(a).now();return b});c.wbg.__wbg_crypto_d05b68a3572bb8ca=(a=>{const b=d(a).crypto;return h(b)});c.wbg.__wbindgen_is_object=(a=>{const b=d(a);const c=typeof b===`object`&&b!==V;return c});c.wbg.__wbg_process_b02b3570280d0366=(a=>{const b=d(a).process;return h(b)});c.wbg.__wbg_versions_c1cb42213cedf0f5=(a=>{const b=d(a).versions;return h(b)});c.wbg.__wbg_node_43b1089f407e4ec2=(a=>{const b=d(a).node;return h(b)});c.wbg.__wbindgen_is_string=(a=>{const b=typeof d(a)===a3;return b});c.wbg.__wbg_require_9a7e0f667ead4995=function(){return E((()=>{const a=module.require;return h(a)}),arguments)};c.wbg.__wbg_msCrypto_10fc94afee92bd76=(a=>{const b=d(a).msCrypto;return h(b)});c.wbg.__wbg_randomFillSync_b70ccbdf4926a99d=function(){return E(((a,b)=>{d(a).randomFillSync(g(b))}),arguments)};c.wbg.__wbg_getRandomValues_7e42b4fb8779dc6d=function(){return E(((a,b)=>{d(a).getRandomValues(d(b))}),arguments)};c.wbg.__wbg_get_bd8e338fbd5f5cc8=((a,b)=>{const c=d(a)[b>>>Z];return h(c)});c.wbg.__wbg_length_cd7af8117672b8b8=(a=>{const b=d(a).length;return b});c.wbg.__wbg_new_16b304a2cfa7ff4a=(()=>{const a=new U();return h(a)});c.wbg.__wbg_newnoargs_e258087cd0daa0ea=((a,b)=>{const c=new Function(l(a,b));return h(c)});c.wbg.__wbg_call_27c0f87801dedf93=function(){return E(((a,b)=>{const c=d(a).call(d(b));return h(c)}),arguments)};c.wbg.__wbg_new_72fb9a18b5ae2624=(()=>{const a=new aa();return h(a)});c.wbg.__wbg_self_ce0dbfc45cf2f5be=function(){return E((()=>{const a=self.self;return h(a)}),arguments)};c.wbg.__wbg_window_c6fb939a7f436783=function(){return E((()=>{const a=window.window;return h(a)}),arguments)};c.wbg.__wbg_globalThis_d1e6af4856ba331b=function(){return E((()=>{const a=globalThis.globalThis;return h(a)}),arguments)};c.wbg.__wbg_global_207b558942527489=function(){return E((()=>{const a=global.global;return h(a)}),arguments)};c.wbg.__wbg_eval_020a6ea487e91ede=function(){return E(((a,b)=>{const c=eval(l(a,b));return h(c)}),arguments)};c.wbg.__wbg_includes_310a37f41280ae42=((a,b,c)=>{const e=d(a).includes(d(b),c);return e});c.wbg.__wbg_of_4a2b313a453ec059=(a=>{const b=U.of(d(a));return h(b)});c.wbg.__wbg_push_a5b05aedc7234f9f=((a,b)=>{const c=d(a).push(d(b));return c});c.wbg.__wbg_call_b3ca7c6051f9bec1=function(){return E(((a,b,c)=>{const e=d(a).call(d(b),d(c));return h(e)}),arguments)};c.wbg.__wbg_now_3014639a94423537=(()=>{const a=Date.now();return a});c.wbg.__wbg_getOwnPropertyDescriptor_fcb32c9a1f90b136=((a,b)=>{const c=aa.getOwnPropertyDescriptor(d(a),d(b));return h(c)});c.wbg.__wbg_is_010fdc0f4ab96916=((a,b)=>{const c=aa.is(d(a),d(b));return c});c.wbg.__wbg_exec_b9996525463e30df=((a,b,c)=>{const e=d(a).exec(l(b,c));return m(e)?Z:h(e)});c.wbg.__wbg_new_3c970fa9da0c5794=((a,b,c,d)=>{const e=new RegExp(l(a,b),l(c,d));return h(e)});c.wbg.__wbg_resolve_b0083a7967828ec8=(a=>{const b=Promise.resolve(d(a));return h(b)});c.wbg.__wbg_catch_0260e338d10f79ae=((a,b)=>{const c=d(a).catch(d(b));return h(c)});c.wbg.__wbg_then_0c86a60e8fcfe9f6=((a,b)=>{const c=d(a).then(d(b));return h(c)});c.wbg.__wbg_then_a73caa9a87991566=((a,b,c)=>{const e=d(a).then(d(b),d(c));return h(e)});c.wbg.__wbg_buffer_12d079cc21e14bdb=(a=>{const b=d(a).buffer;return h(b)});c.wbg.__wbg_newwithbyteoffsetandlength_41559f654c4e743c=((a,b,c)=>{const e=new Int8Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_4bea9f904a7e0aef=((a,b,c)=>{const e=new Int16Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_425360430a1c8206=((a,b,c)=>{const e=new $(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=((a,b,c)=>{const e=new _(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_new_63b92bc8671ed464=(a=>{const b=new _(d(a));return h(b)});c.wbg.__wbg_set_a47bac70306a19a7=((a,b,c)=>{d(a).set(d(b),c>>>Z)});c.wbg.__wbg_length_c20a40f15020d68a=(a=>{const b=d(a).length;return b});c.wbg.__wbg_newwithbyteoffsetandlength_9fd64654bc0b0817=((a,b,c)=>{const e=new Uint16Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_3125852e5a7fbcff=((a,b,c)=>{const e=new a8(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_4a659d079a1650e0=((a,b,c)=>{const e=new a9(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithlength_e9b4878cebadb3d3=(a=>{const b=new _(a>>>Z);return h(b)});c.wbg.__wbg_subarray_a1f73cd4b5b42fe1=((a,b,c)=>{const e=d(a).subarray(b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_stringify_8887fe74e1c50d81=function(){return E((a=>{const b=a5(d(a));return h(b)}),arguments)};c.wbg.__wbg_set_1f9b04f170055d33=function(){return E(((a,b,c)=>{const e=Reflect.set(d(a),d(b),d(c));return e}),arguments)};c.wbg.__wbindgen_debug_string=((a,c)=>{const e=v(d(c));const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbindgen_throw=((a,b)=>{throw new Y(l(a,b))});c.wbg.__wbindgen_memory=(()=>{const a=b.memory;return h(a)});c.wbg.__wbindgen_closure_wrapper18117=((a,b,c)=>{const d=x(a,b,ab,y);return h(d)});c.wbg.__wbindgen_closure_wrapper18124=((a,b,c)=>{const d=x(a,b,ab,y);return h(d)});c.wbg.__wbindgen_closure_wrapper18127=((a,b,c)=>{const d=x(a,b,ab,z);return h(d)});c.wbg.__wbindgen_closure_wrapper18595=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18597=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18599=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18601=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18603=((a,b,c)=>{const d=x(a,b,ac,B);return h(d)});c.wbg.__wbindgen_closure_wrapper18613=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper53111=((a,b,c)=>{const d=x(a,b,34730,C);return h(d)});c.wbg.__wbindgen_closure_wrapper98465=((a,b,c)=>{const d=x(a,b,62003,D);return h(d)});return c});var H=(()=>{if(G===V||G.byteLength===Z){G=new a8(b.memory.buffer)};return G});var u=((a,b,c)=>{if(c===T){const c=s.encode(a);const d=b(c.length,W)>>>Z;k().subarray(d,d+ c.length).set(c);r=c.length;return d};let d=a.length;let e=b(d,W)>>>Z;const f=k();let g=Z;for(;g127)break;f[e+ g]=b};if(g!==d){if(g!==Z){a=a.slice(g)};e=c(e,d,d=g+ a.length*3,W)>>>Z;const b=k().subarray(e+ g,e+ d);const f=t(a,b);g+=f.written;e=c(e,d,g,W)>>>Z};r=g;return e});var k=(()=>{if(j===V||j.byteLength===Z){j=new _(b.memory.buffer)};return j});var B=((a,c)=>{b.wasm_bindgen__convert__closures__invoke0_mut__hdb130180d3bcd954(a,c)});var M=(async(a,b)=>{if(typeof Response===a0&&a instanceof Response){if(typeof WebAssembly.instantiateStreaming===a0){try{return await WebAssembly.instantiateStreaming(a,b)}catch(b){if(a.headers.get(`Content-Type`)!=`application/wasm`){console.warn(`\`WebAssembly.instantiateStreaming\` failed because your server does not serve wasm with \`application/wasm\` MIME type. Falling back to \`WebAssembly.instantiate\` which is slower. Original error:\\n`,b)}else{throw b}}};const c=await a.arrayBuffer();return await WebAssembly.instantiate(c,b)}else{const c=await WebAssembly.instantiate(a,b);if(c instanceof WebAssembly.Instance){return {instance:c,module:a}}else{return c}}});var D=((a,c,d)=>{b._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc45fd2ee2f2bb863(a,c,h(d))});var F=((a,b)=>{a=a>>>Z;return q().subarray(a/a7,a/a7+ b)});var I=((a,b)=>{a=a>>>Z;return H().subarray(a/a7,a/a7+ b)});var h=(a=>{if(e===c.length)c.push(c.length+ W);const b=e;e=c[b];c[b]=a;return b});var g=(a=>{const b=d(a);f(a);return b});var q=(()=>{if(p===V||p.byteLength===Z){p=new $(b.memory.buffer)};return p});var C=((a,c)=>{b.wasm_bindgen__convert__closures__invoke0_mut__hbb34f9ef7e8aa7da(a,c)});var R=(async(a)=>{if(b!==T)return b;if(typeof a===S){a=new URL(`bevy-example_bg.wasm`,import.meta.url)};const c=N();if(typeof a===a3||typeof Request===a0&&a instanceof Request||typeof URL===a0&&a instanceof URL){a=fetch(a)};O(c);const {instance:d,module:e}=await M(await a,c);return P(d,e)});var f=(a=>{if(a<132)return;c[a]=e;e=a});var Q=(a=>{if(b!==T)return b;const c=N();O(c);if(!(a instanceof WebAssembly.Module)){a=new WebAssembly.Module(a)};const d=new WebAssembly.Instance(a,c);return P(d,a)});var P=((a,c)=>{b=a.exports;R.__wbindgen_wasm_module=c;J=V;n=V;p=V;G=V;j=V;b.__wbindgen_start();return b});var x=((a,c,d,e)=>{const f={a:a,b:c,cnt:W,dtor:d};const g=(...a)=>{f.cnt++;const c=f.a;f.a=Z;try{return e(c,f.b,...a)}finally{if(--f.cnt===Z){b.__wbindgen_export_2.get(f.dtor)(c,f.b);w.unregister(f)}else{f.a=c}}};g.original=f;w.register(g,f,f);return g});var l=((a,b)=>{a=a>>>Z;return i.decode(k().subarray(a,a+ b))});var y=((a,c,d)=>{b.wasm_bindgen__convert__closures__invoke1_mut__h1a0e112ba6b4e1ef(a,c,h(d))});const a=typeof AudioContext!==S?AudioContext:(typeof webkitAudioContext!==S?webkitAudioContext:T);let b;const c=new U(128).fill(T);c.push(T,V,!0,!1);let e=c.length;const i=typeof TextDecoder!==S?new TextDecoder(X,{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Y(`TextDecoder not available`)}};if(typeof TextDecoder!==S){i.decode()};let j=V;let n=V;let p=V;let r=Z;const s=typeof TextEncoder!==S?new TextEncoder(X):{encode:()=>{throw Y(`TextEncoder not available`)}};const t=typeof s.encodeInto===a0?((a,b)=>s.encodeInto(a,b)):((a,b)=>{const c=s.encode(a);b.set(c);return {read:a.length,written:c.length}});const w=typeof a6===S?{register:()=>{},unregister:()=>{}}:new a6(a=>{b.__wbindgen_export_2.get(a.dtor)(a.a,a.b)});let G=V;let J=V;export default R;export{Q as initSync} \ No newline at end of file +let a7=4,V=null,S=`undefined`,a2=`boolean`,ab=11286,a0=`function`,a3=`string`,ac=11385,Z=0,W=1,a4=`Object`,X=`utf-8`,a1=`number`,U=Array,Y=Error,a6=FinalizationRegistry,a9=Float32Array,$=Int32Array,a5=JSON.stringify,aa=Object,a8=Uint32Array,_=Uint8Array,T=undefined;var L=((a,b)=>{a=a>>>Z;return K().subarray(a/a7,a/a7+ b)});var v=(a=>{const b=typeof a;if(b==a1||b==a2||a==V){return `${a}`};if(b==a3){return `"${a}"`};if(b==`symbol`){const b=a.description;if(b==V){return `Symbol`}else{return `Symbol(${b})`}};if(b==a0){const b=a.name;if(typeof b==a3&&b.length>Z){return `Function(${b})`}else{return `Function`}};if(U.isArray(a)){const b=a.length;let c=`[`;if(b>Z){c+=v(a[Z])};for(let d=W;dW){d=c[W]}else{return toString.call(a)};if(d==a4){try{return `Object(`+ a5(a)+ `)`}catch(a){return a4}};if(a instanceof Y){return `${a.name}: ${a.message}\n${a.stack}`};return d});var A=((a,c,d)=>{b.wasm_bindgen__convert__closures__invoke1_mut__h110e77542f142fb7(a,c,h(d))});var K=(()=>{if(J===V||J.byteLength===Z){J=new a9(b.memory.buffer)};return J});var O=((a,b)=>{});function E(a,c){try{return a.apply(this,c)}catch(a){b.__wbindgen_exn_store(h(a))}}var z=((a,c,d,e)=>{b.wasm_bindgen__convert__closures__invoke2_mut__h0cc3af2cea8a14d6(a,c,h(d),h(e))});var m=(a=>a===T||a===V);var d=(a=>c[a]);var o=(()=>{if(n===V||n.byteLength===Z){n=new Float64Array(b.memory.buffer)};return n});var N=(()=>{const c={};c.wbg={};c.wbg.__wbindgen_object_drop_ref=(a=>{g(a)});c.wbg.__wbindgen_object_clone_ref=(a=>{const b=d(a);return h(b)});c.wbg.__wbg_Window_cc0273a5da2c36dc=(a=>{const b=d(a).Window;return h(b)});c.wbg.__wbg_webkitRequestFullscreen_8abcfecec7127495=(a=>{d(a).webkitRequestFullscreen()});c.wbg.__wbg_webkitFullscreenElement_533c5f32e2ac8d0c=(a=>{const b=d(a).webkitFullscreenElement;return m(b)?Z:h(b)});c.wbg.__wbg_webkitExitFullscreen_225988f6e8c97b63=(a=>{d(a).webkitExitFullscreen()});c.wbg.__wbg_requestFullscreen_f4349fb8a7429cf9=(a=>{const b=d(a).requestFullscreen();return h(b)});c.wbg.__wbg_requestFullscreen_a851d70cb190396a=(a=>{const b=d(a).requestFullscreen;return h(b)});c.wbg.__wbg_prototype_8e5075a5dd95f801=(()=>{const a=ResizeObserverEntry.prototype;return h(a)});c.wbg.__wbindgen_string_new=((a,b)=>{const c=l(a,b);return h(c)});c.wbg.__wbindgen_is_undefined=(a=>{const b=d(a)===T;return b});c.wbg.__wbg_postTask_4674878f9a603824=((a,b,c)=>{const e=d(a).postTask(d(b),d(c));return h(e)});c.wbg.__wbindgen_cb_drop=(a=>{const b=g(a).original;if(b.cnt--==W){b.a=Z;return !0};const c=!1;return c});c.wbg.__wbg_getCoalescedEvents_4665669d237be577=(a=>{const b=d(a).getCoalescedEvents;return h(b)});c.wbg.__wbg_onpointerrawupdate_e087759b4021ec00=(a=>{const b=d(a).onpointerrawupdate;return h(b)});c.wbg.__wbg_requestIdleCallback_081ddac93612a53e=(a=>{const b=d(a).requestIdleCallback;return h(b)});c.wbg.__wbg_scheduler_6932606c19435996=(a=>{const b=d(a).scheduler;return h(b)});c.wbg.__wbg_offsetX_d08eda91526f22a2=(a=>{const b=d(a).offsetX;return b});c.wbg.__wbg_offsetY_3c895bb1534dfbf4=(a=>{const b=d(a).offsetY;return b});c.wbg.__wbg_scheduler_8082c844a9cfc0df=(a=>{const b=d(a).scheduler;return h(b)});c.wbg.__wbindgen_number_new=(a=>{const b=a;return h(b)});c.wbg.__wbindgen_number_get=((a,b)=>{const c=d(b);const e=typeof c===a1?c:T;o()[a/8+ W]=m(e)?Z:e;q()[a/a7+ Z]=!m(e)});c.wbg.__wbindgen_is_null=(a=>{const b=d(a)===V;return b});c.wbg.__wbindgen_string_get=((a,c)=>{const e=d(c);const f=typeof e===a3?e:T;var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbindgen_boolean_get=(a=>{const b=d(a);const c=typeof b===a2?(b?W:Z):2;return c});c.wbg.__wbg_log_c9486ca5d8e2cbe8=((a,c)=>{let d;let e;try{d=a;e=c;console.log(l(a,c))}finally{b.__wbindgen_free(d,e,W)}});c.wbg.__wbg_log_aba5996d9bde071f=((a,c,d,e,f,g,h,i)=>{let j;let k;try{j=a;k=c;console.log(l(a,c),l(d,e),l(f,g),l(h,i))}finally{b.__wbindgen_free(j,k,W)}});c.wbg.__wbg_mark_40e050a77cc39fea=((a,b)=>{performance.mark(l(a,b))});c.wbg.__wbg_measure_aa7a73f17813f708=function(){return E(((a,c,d,e)=>{let f;let g;let h;let i;try{f=a;g=c;h=d;i=e;performance.measure(l(a,c),l(d,e))}finally{b.__wbindgen_free(f,g,W);b.__wbindgen_free(h,i,W)}}),arguments)};c.wbg.__wbg_new_abda76e883ba8a5f=(()=>{const a=new Y();return h(a)});c.wbg.__wbg_stack_658279fe44541cf6=((a,c)=>{const e=d(c).stack;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_error_f851667af71bcfc6=((a,c)=>{let d;let e;try{d=a;e=c;console.error(l(a,c))}finally{b.__wbindgen_free(d,e,W)}});c.wbg.__wbg_instanceof_WebGl2RenderingContext_6b8f92d566ced9e1=(a=>{let b;try{b=d(a) instanceof WebGL2RenderingContext}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_beginQuery_3d6bb95151ccc499=((a,b,c)=>{d(a).beginQuery(b>>>Z,d(c))});c.wbg.__wbg_bindBufferRange_e7b7d4cd65a6f94d=((a,b,c,e,f,g)=>{d(a).bindBufferRange(b>>>Z,c>>>Z,d(e),f,g)});c.wbg.__wbg_bindSampler_065f0bdf49888ff1=((a,b,c)=>{d(a).bindSampler(b>>>Z,d(c))});c.wbg.__wbg_bindVertexArray_239574d42dbbd203=((a,b)=>{d(a).bindVertexArray(d(b))});c.wbg.__wbg_blitFramebuffer_4d77c70dcb183e0c=((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).blitFramebuffer(b,c,e,f,g,h,i,j,k>>>Z,l>>>Z)});c.wbg.__wbg_bufferData_194f0914aaada840=((a,b,c,e)=>{d(a).bufferData(b>>>Z,c,e>>>Z)});c.wbg.__wbg_bufferData_c787516945ba48c2=((a,b,c,e)=>{d(a).bufferData(b>>>Z,d(c),e>>>Z)});c.wbg.__wbg_bufferSubData_7f5ddd4fdc628963=((a,b,c,e)=>{d(a).bufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_clearBufferiv_519fe97abe38622e=((a,b,c,e,f)=>{d(a).clearBufferiv(b>>>Z,c,F(e,f))});c.wbg.__wbg_clearBufferuiv_1ae6df4bc96ffe37=((a,b,c,e,f)=>{d(a).clearBufferuiv(b>>>Z,c,I(e,f))});c.wbg.__wbg_clientWaitSync_8f9f625ae9a42de6=((a,b,c,e)=>{const f=d(a).clientWaitSync(d(b),c>>>Z,e>>>Z);return f});c.wbg.__wbg_compressedTexSubImage2D_f77856eab95e8671=((a,b,c,e,f,g,h,i,j,k)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j,k)});c.wbg.__wbg_compressedTexSubImage2D_87d89d4b3f413805=((a,b,c,e,f,g,h,i,j)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,d(j))});c.wbg.__wbg_compressedTexSubImage3D_b69e67d3cd62b756=((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).compressedTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l,m)});c.wbg.__wbg_compressedTexSubImage3D_ff8eceb18a7ea2d6=((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).compressedTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,d(l))});c.wbg.__wbg_copyBufferSubData_db2c040cc06be689=((a,b,c,e,f,g)=>{d(a).copyBufferSubData(b>>>Z,c>>>Z,e,f,g)});c.wbg.__wbg_copyTexSubImage3D_0a3f60d0ee6409c7=((a,b,c,e,f,g,h,i,j,k)=>{d(a).copyTexSubImage3D(b>>>Z,c,e,f,g,h,i,j,k)});c.wbg.__wbg_createQuery_576d391ec549ed5e=(a=>{const b=d(a).createQuery();return m(b)?Z:h(b)});c.wbg.__wbg_createSampler_49de055e495fedf8=(a=>{const b=d(a).createSampler();return m(b)?Z:h(b)});c.wbg.__wbg_createVertexArray_4f450ed4d4a69acf=(a=>{const b=d(a).createVertexArray();return m(b)?Z:h(b)});c.wbg.__wbg_deleteQuery_9aaca8e15da5bc9c=((a,b)=>{d(a).deleteQuery(d(b))});c.wbg.__wbg_deleteSampler_93e35dc696f633c9=((a,b)=>{d(a).deleteSampler(d(b))});c.wbg.__wbg_deleteSync_80326e1fc23a1016=((a,b)=>{d(a).deleteSync(d(b))});c.wbg.__wbg_deleteVertexArray_67635c7fe59aa660=((a,b)=>{d(a).deleteVertexArray(d(b))});c.wbg.__wbg_drawArraysInstanced_3f02ae8708f8c4c7=((a,b,c,e,f)=>{d(a).drawArraysInstanced(b>>>Z,c,e,f)});c.wbg.__wbg_drawBuffers_6d32a0c370b9cb7f=((a,b)=>{d(a).drawBuffers(d(b))});c.wbg.__wbg_drawElementsInstanced_981861e70f6f9991=((a,b,c,e,f,g)=>{d(a).drawElementsInstanced(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_endQuery_f256667aaa2e9fac=((a,b)=>{d(a).endQuery(b>>>Z)});c.wbg.__wbg_fenceSync_f9c8da648fd4e444=((a,b,c)=>{const e=d(a).fenceSync(b>>>Z,c>>>Z);return m(e)?Z:h(e)});c.wbg.__wbg_framebufferTextureLayer_45cb5a2978de4939=((a,b,c,e,f,g)=>{d(a).framebufferTextureLayer(b>>>Z,c>>>Z,d(e),f,g)});c.wbg.__wbg_getBufferSubData_7f31bd9ec3682832=((a,b,c,e)=>{d(a).getBufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_getIndexedParameter_ad00bfb1210dbb28=function(){return E(((a,b,c)=>{const e=d(a).getIndexedParameter(b>>>Z,c>>>Z);return h(e)}),arguments)};c.wbg.__wbg_getQueryParameter_ea4da47c69182e79=((a,b,c)=>{const e=d(a).getQueryParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getSyncParameter_295178259afc15d8=((a,b,c)=>{const e=d(a).getSyncParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getUniformBlockIndex_091bee5be624ff21=((a,b,c,e)=>{const f=d(a).getUniformBlockIndex(d(b),l(c,e));return f});c.wbg.__wbg_invalidateFramebuffer_99c0131e9e958f49=function(){return E(((a,b,c)=>{d(a).invalidateFramebuffer(b>>>Z,d(c))}),arguments)};c.wbg.__wbg_readBuffer_c02ab6ce6d95c99b=((a,b)=>{d(a).readBuffer(b>>>Z)});c.wbg.__wbg_readPixels_40ba392d7aaf6ac0=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,d(i))}),arguments)};c.wbg.__wbg_readPixels_db02ea1a888b611a=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,i)}),arguments)};c.wbg.__wbg_renderbufferStorageMultisample_37c0b1b9e8a4f342=((a,b,c,e,f,g)=>{d(a).renderbufferStorageMultisample(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_samplerParameterf_f60306a8facede3e=((a,b,c,e)=>{d(a).samplerParameterf(d(b),c>>>Z,e)});c.wbg.__wbg_samplerParameteri_da5225ffbb653046=((a,b,c,e)=>{d(a).samplerParameteri(d(b),c>>>Z,e)});c.wbg.__wbg_texImage2D_2558a70047650d54=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texImage3D_7987a4b692d91b21=function(){return E(((a,b,c,e,f,g,h,i,j,k,l)=>{d(a).texImage3D(b>>>Z,c,e,f,g,h,i,j>>>Z,k>>>Z,d(l))}),arguments)};c.wbg.__wbg_texStorage2D_0fff70234489e5a8=((a,b,c,e,f,g)=>{d(a).texStorage2D(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_texStorage3D_7d322e9790add281=((a,b,c,e,f,g,h)=>{d(a).texStorage3D(b>>>Z,c,e>>>Z,f,g,h)});c.wbg.__wbg_texSubImage2D_b4ac5eac47418cc5=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_b962ba533b866161=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,k)}),arguments)};c.wbg.__wbg_texSubImage2D_0b72a7308c3e78d3=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_8f2db7871647d37a=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_defc51298c31c0e3=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage3D_bd2fd28608206fe5=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,m)}),arguments)};c.wbg.__wbg_texSubImage3D_895cc20d45e04909=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_f75ab42a48d9b789=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_2b48a701e63f042e=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_texSubImage3D_f983428ce1099b7f=function(){return E(((a,b,c,e,f,g,h,i,j,k,l,m)=>{d(a).texSubImage3D(b>>>Z,c,e,f,g,h,i,j,k>>>Z,l>>>Z,d(m))}),arguments)};c.wbg.__wbg_uniform1ui_71145d62b7bd13f4=((a,b,c)=>{d(a).uniform1ui(d(b),c>>>Z)});c.wbg.__wbg_uniform2fv_4bd352337ccc4530=((a,b,c,e)=>{d(a).uniform2fv(d(b),L(c,e))});c.wbg.__wbg_uniform2iv_829bd2f635ddf819=((a,b,c,e)=>{d(a).uniform2iv(d(b),F(c,e))});c.wbg.__wbg_uniform2uiv_6ae4fe2845703965=((a,b,c,e)=>{d(a).uniform2uiv(d(b),I(c,e))});c.wbg.__wbg_uniform3fv_3d2854c81603e498=((a,b,c,e)=>{d(a).uniform3fv(d(b),L(c,e))});c.wbg.__wbg_uniform3iv_71333eb685ad9616=((a,b,c,e)=>{d(a).uniform3iv(d(b),F(c,e))});c.wbg.__wbg_uniform3uiv_998cd5452e009d35=((a,b,c,e)=>{d(a).uniform3uiv(d(b),I(c,e))});c.wbg.__wbg_uniform4fv_39cdcce4b1acc767=((a,b,c,e)=>{d(a).uniform4fv(d(b),L(c,e))});c.wbg.__wbg_uniform4iv_f54116c4cfdcd96e=((a,b,c,e)=>{d(a).uniform4iv(d(b),F(c,e))});c.wbg.__wbg_uniform4uiv_c1b79c253aa0271f=((a,b,c,e)=>{d(a).uniform4uiv(d(b),I(c,e))});c.wbg.__wbg_uniformBlockBinding_52117c1104e3ac8a=((a,b,c,e)=>{d(a).uniformBlockBinding(d(b),c>>>Z,e>>>Z)});c.wbg.__wbg_uniformMatrix2fv_756ddcf41f02aa75=((a,b,c,e,f)=>{d(a).uniformMatrix2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix2x3fv_b11505178375085e=((a,b,c,e,f)=>{d(a).uniformMatrix2x3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix2x4fv_9a96ca1263d07814=((a,b,c,e,f)=>{d(a).uniformMatrix2x4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3fv_f26b98137276fd3d=((a,b,c,e,f)=>{d(a).uniformMatrix3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3x2fv_8e447d81dfee8f45=((a,b,c,e,f)=>{d(a).uniformMatrix3x2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3x4fv_0b4125c5150e9ebc=((a,b,c,e,f)=>{d(a).uniformMatrix3x4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4fv_5d8e0e047546456b=((a,b,c,e,f)=>{d(a).uniformMatrix4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4x2fv_15b6f3535fd4ce98=((a,b,c,e,f)=>{d(a).uniformMatrix4x2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4x3fv_5550b8543a32bbbd=((a,b,c,e,f)=>{d(a).uniformMatrix4x3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_vertexAttribDivisor_8479e8b81c913ed6=((a,b,c)=>{d(a).vertexAttribDivisor(b>>>Z,c>>>Z)});c.wbg.__wbg_vertexAttribIPointer_69f2f4bd74cf0bcb=((a,b,c,e,f,g)=>{d(a).vertexAttribIPointer(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_activeTexture_d42cec3a26e47a5b=((a,b)=>{d(a).activeTexture(b>>>Z)});c.wbg.__wbg_attachShader_2112634b3ffa9e9f=((a,b,c)=>{d(a).attachShader(d(b),d(c))});c.wbg.__wbg_bindAttribLocation_e05596ff4f5413c3=((a,b,c,e,f)=>{d(a).bindAttribLocation(d(b),c>>>Z,l(e,f))});c.wbg.__wbg_bindBuffer_90d4fb91538001d5=((a,b,c)=>{d(a).bindBuffer(b>>>Z,d(c))});c.wbg.__wbg_bindFramebuffer_4f950b884dc4be83=((a,b,c)=>{d(a).bindFramebuffer(b>>>Z,d(c))});c.wbg.__wbg_bindRenderbuffer_1e0b14f526ed7a9d=((a,b,c)=>{d(a).bindRenderbuffer(b>>>Z,d(c))});c.wbg.__wbg_bindTexture_75a698c47a923814=((a,b,c)=>{d(a).bindTexture(b>>>Z,d(c))});c.wbg.__wbg_blendColor_7d3bf5e5214b44f7=((a,b,c,e,f)=>{d(a).blendColor(b,c,e,f)});c.wbg.__wbg_blendEquation_6ca8e567e79464a4=((a,b)=>{d(a).blendEquation(b>>>Z)});c.wbg.__wbg_blendEquationSeparate_34aa4cecd02882ab=((a,b,c)=>{d(a).blendEquationSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFunc_cffe61957c92e9ac=((a,b,c)=>{d(a).blendFunc(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFuncSeparate_3c342f57887c2900=((a,b,c,e,f)=>{d(a).blendFuncSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_clear_8e2508724944df18=((a,b)=>{d(a).clear(b>>>Z)});c.wbg.__wbg_clearColor_480962bfac4e1cbd=((a,b,c,e,f)=>{d(a).clearColor(b,c,e,f)});c.wbg.__wbg_clearDepth_f5b4a73c4b8050eb=((a,b)=>{d(a).clearDepth(b)});c.wbg.__wbg_clearStencil_1e4bb9932be75fce=((a,b)=>{d(a).clearStencil(b)});c.wbg.__wbg_colorMask_21a93d0180bcbffa=((a,b,c,e,f)=>{d(a).colorMask(b!==Z,c!==Z,e!==Z,f!==Z)});c.wbg.__wbg_compileShader_f40e0c51a7a836fd=((a,b)=>{d(a).compileShader(d(b))});c.wbg.__wbg_copyTexSubImage2D_65140521b061c61b=((a,b,c,e,f,g,h,i,j)=>{d(a).copyTexSubImage2D(b>>>Z,c,e,f,g,h,i,j)});c.wbg.__wbg_createBuffer_7f57647465d111f0=(a=>{const b=d(a).createBuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createFramebuffer_8ebfde8c77472024=(a=>{const b=d(a).createFramebuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createProgram_7759fb2effb5d9b3=(a=>{const b=d(a).createProgram();return m(b)?Z:h(b)});c.wbg.__wbg_createRenderbuffer_340b1c428d564bfd=(a=>{const b=d(a).createRenderbuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createShader_b474ef421ec0f80b=((a,b)=>{const c=d(a).createShader(b>>>Z);return m(c)?Z:h(c)});c.wbg.__wbg_createTexture_18b4a88c14cb086e=(a=>{const b=d(a).createTexture();return m(b)?Z:h(b)});c.wbg.__wbg_cullFace_fe427cdf8d0ea4e2=((a,b)=>{d(a).cullFace(b>>>Z)});c.wbg.__wbg_deleteBuffer_fca5d765302c9a4e=((a,b)=>{d(a).deleteBuffer(d(b))});c.wbg.__wbg_deleteFramebuffer_da681ed1dfa6d543=((a,b)=>{d(a).deleteFramebuffer(d(b))});c.wbg.__wbg_deleteProgram_a06d69620332cc70=((a,b)=>{d(a).deleteProgram(d(b))});c.wbg.__wbg_deleteRenderbuffer_5dcdde247a392125=((a,b)=>{d(a).deleteRenderbuffer(d(b))});c.wbg.__wbg_deleteShader_138a810cc0ca9986=((a,b)=>{d(a).deleteShader(d(b))});c.wbg.__wbg_deleteTexture_eae7abcfa3015f09=((a,b)=>{d(a).deleteTexture(d(b))});c.wbg.__wbg_depthFunc_5527d3ee35e25a8d=((a,b)=>{d(a).depthFunc(b>>>Z)});c.wbg.__wbg_depthMask_9120207d491c649a=((a,b)=>{d(a).depthMask(b!==Z)});c.wbg.__wbg_depthRange_d8d5ad00fd133fc0=((a,b,c)=>{d(a).depthRange(b,c)});c.wbg.__wbg_disable_f0ef6e9a7ac6ddd7=((a,b)=>{d(a).disable(b>>>Z)});c.wbg.__wbg_disableVertexAttribArray_e4f458e34e54fe78=((a,b)=>{d(a).disableVertexAttribArray(b>>>Z)});c.wbg.__wbg_drawArrays_5bf0d92947e472af=((a,b,c,e)=>{d(a).drawArrays(b>>>Z,c,e)});c.wbg.__wbg_enable_8b3019da8846ce76=((a,b)=>{d(a).enable(b>>>Z)});c.wbg.__wbg_enableVertexAttribArray_9d7b7e199f86e09b=((a,b)=>{d(a).enableVertexAttribArray(b>>>Z)});c.wbg.__wbg_framebufferRenderbuffer_0144c6e35e2edb19=((a,b,c,e,f)=>{d(a).framebufferRenderbuffer(b>>>Z,c>>>Z,e>>>Z,d(f))});c.wbg.__wbg_framebufferTexture2D_a6ad7148f7983ae6=((a,b,c,e,f,g)=>{d(a).framebufferTexture2D(b>>>Z,c>>>Z,e>>>Z,d(f),g)});c.wbg.__wbg_frontFace_41ab8e7ce3e48cae=((a,b)=>{d(a).frontFace(b>>>Z)});c.wbg.__wbg_getExtension_bef4112494c87f34=function(){return E(((a,b,c)=>{const e=d(a).getExtension(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_getParameter_aa9af66884d2b210=function(){return E(((a,b)=>{const c=d(a).getParameter(b>>>Z);return h(c)}),arguments)};c.wbg.__wbg_getProgramInfoLog_4d189135f8d5a2de=((a,c,e)=>{const f=d(c).getProgramInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getProgramParameter_7b04ca71a79d9047=((a,b,c)=>{const e=d(a).getProgramParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getShaderInfoLog_d5de3e4eab06fc46=((a,c,e)=>{const f=d(c).getShaderInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getShaderParameter_4ddb51279bb1500b=((a,b,c)=>{const e=d(a).getShaderParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getSupportedExtensions_7a174085f9e1983a=(a=>{const b=d(a).getSupportedExtensions();return m(b)?Z:h(b)});c.wbg.__wbg_getUniformLocation_51ec30e3755e574d=((a,b,c,e)=>{const f=d(a).getUniformLocation(d(b),l(c,e));return m(f)?Z:h(f)});c.wbg.__wbg_linkProgram_eabc664217816e72=((a,b)=>{d(a).linkProgram(d(b))});c.wbg.__wbg_pixelStorei_162a23ba7872b886=((a,b,c)=>{d(a).pixelStorei(b>>>Z,c)});c.wbg.__wbg_polygonOffset_9f20aa27db3ea0a2=((a,b,c)=>{d(a).polygonOffset(b,c)});c.wbg.__wbg_renderbufferStorage_ff5740fb95ecf231=((a,b,c,e,f)=>{d(a).renderbufferStorage(b>>>Z,c>>>Z,e,f)});c.wbg.__wbg_scissor_726eea865bbd6809=((a,b,c,e,f)=>{d(a).scissor(b,c,e,f)});c.wbg.__wbg_shaderSource_7943d06f24862a3b=((a,b,c,e)=>{d(a).shaderSource(d(b),l(c,e))});c.wbg.__wbg_stencilFuncSeparate_c16750a621e43580=((a,b,c,e,f)=>{d(a).stencilFuncSeparate(b>>>Z,c>>>Z,e,f>>>Z)});c.wbg.__wbg_stencilMask_9abfc669d9c2a893=((a,b)=>{d(a).stencilMask(b>>>Z)});c.wbg.__wbg_stencilMaskSeparate_a1f8f805de62aac5=((a,b,c)=>{d(a).stencilMaskSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_stencilOpSeparate_2f2cc25254360270=((a,b,c,e,f)=>{d(a).stencilOpSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_texParameteri_8f70dffce11d7da1=((a,b,c,e)=>{d(a).texParameteri(b>>>Z,c>>>Z,e)});c.wbg.__wbg_uniform1f_9b9e5339e7560722=((a,b,c)=>{d(a).uniform1f(d(b),c)});c.wbg.__wbg_uniform1i_bdcd75be097285e6=((a,b,c)=>{d(a).uniform1i(d(b),c)});c.wbg.__wbg_uniform4f_b143081575a3bb56=((a,b,c,e,f,g)=>{d(a).uniform4f(d(b),c,e,f,g)});c.wbg.__wbg_useProgram_757fab437af29c20=((a,b)=>{d(a).useProgram(d(b))});c.wbg.__wbg_vertexAttribPointer_4416f0325c02aa13=((a,b,c,e,f,g,h)=>{d(a).vertexAttribPointer(b>>>Z,c,e>>>Z,f!==Z,g,h)});c.wbg.__wbg_viewport_7414e7e2a83afc72=((a,b,c,e,f)=>{d(a).viewport(b,c,e,f)});c.wbg.__wbg_instanceof_Window_f401953a2cf86220=(a=>{let b;try{b=d(a) instanceof Window}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_document_5100775d18896c16=(a=>{const b=d(a).document;return m(b)?Z:h(b)});c.wbg.__wbg_navigator_6c8fa55c5cc8796e=(a=>{const b=d(a).navigator;return h(b)});c.wbg.__wbg_devicePixelRatio_efc553b59506f64c=(a=>{const b=d(a).devicePixelRatio;return b});c.wbg.__wbg_isSecureContext_3dd59a5324a1c6d5=(a=>{const b=d(a).isSecureContext;return b});c.wbg.__wbg_cancelIdleCallback_3a36cf77475b492b=((a,b)=>{d(a).cancelIdleCallback(b>>>Z)});c.wbg.__wbg_getComputedStyle_078292ffe423aded=function(){return E(((a,b)=>{const c=d(a).getComputedStyle(d(b));return m(c)?Z:h(c)}),arguments)};c.wbg.__wbg_matchMedia_66bb21e3ef19270c=function(){return E(((a,b,c)=>{const e=d(a).matchMedia(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_open_cc82b8aaf0c296c1=function(){return E(((a,b,c,e,f)=>{const g=d(a).open(l(b,c),l(e,f));return m(g)?Z:h(g)}),arguments)};c.wbg.__wbg_requestIdleCallback_cee8e1d6bdcfae9e=function(){return E(((a,b)=>{const c=d(a).requestIdleCallback(d(b));return c}),arguments)};c.wbg.__wbg_cancelAnimationFrame_111532f326e480af=function(){return E(((a,b)=>{d(a).cancelAnimationFrame(b)}),arguments)};c.wbg.__wbg_requestAnimationFrame_549258cfa66011f0=function(){return E(((a,b)=>{const c=d(a).requestAnimationFrame(d(b));return c}),arguments)};c.wbg.__wbg_clearTimeout_ba63ae54a36e111e=((a,b)=>{d(a).clearTimeout(b)});c.wbg.__wbg_fetch_5aed618e85a9cc28=((a,b,c)=>{const e=d(a).fetch(l(b,c));return h(e)});c.wbg.__wbg_setTimeout_d2b9a986d10a6182=function(){return E(((a,b)=>{const c=d(a).setTimeout(d(b));return c}),arguments)};c.wbg.__wbg_setTimeout_c172d5704ef82276=function(){return E(((a,b,c)=>{const e=d(a).setTimeout(d(b),c);return e}),arguments)};c.wbg.__wbg_body_edb1908d3ceff3a1=(a=>{const b=d(a).body;return m(b)?Z:h(b)});c.wbg.__wbg_visibilityState_990071edf70b1c55=(a=>{const b=d(a).visibilityState;return h(b)});c.wbg.__wbg_activeElement_fa7feca08f5028c0=(a=>{const b=d(a).activeElement;return m(b)?Z:h(b)});c.wbg.__wbg_fullscreenElement_1bef71098bd8dfde=(a=>{const b=d(a).fullscreenElement;return m(b)?Z:h(b)});c.wbg.__wbg_createElement_8bae7856a4bb7411=function(){return E(((a,b,c)=>{const e=d(a).createElement(l(b,c));return h(e)}),arguments)};c.wbg.__wbg_exitFullscreen_5679ad2b002921bd=(a=>{d(a).exitFullscreen()});c.wbg.__wbg_exitPointerLock_b62fe3c7830470e4=(a=>{d(a).exitPointerLock()});c.wbg.__wbg_querySelector_a5f74efc5fa193dd=function(){return E(((a,b,c)=>{const e=d(a).querySelector(l(b,c));return m(e)?Z:h(e)}),arguments)};c.wbg.__wbg_getBoundingClientRect_91e6d57c4e65f745=(a=>{const b=d(a).getBoundingClientRect();return h(b)});c.wbg.__wbg_requestPointerLock_78b2a4a24cb69366=(a=>{d(a).requestPointerLock()});c.wbg.__wbg_setAttribute_3c9f6c303b696daa=function(){return E(((a,b,c,e,f)=>{d(a).setAttribute(l(b,c),l(e,f))}),arguments)};c.wbg.__wbg_setPointerCapture_0fdaad7a916c8486=function(){return E(((a,b)=>{d(a).setPointerCapture(b)}),arguments)};c.wbg.__wbg_bufferData_bb9321e8fa042bac=((a,b,c,e)=>{d(a).bufferData(b>>>Z,c,e>>>Z)});c.wbg.__wbg_bufferData_5d1e6b8eaa7d23c8=((a,b,c,e)=>{d(a).bufferData(b>>>Z,d(c),e>>>Z)});c.wbg.__wbg_bufferSubData_a6cea5e056662bd7=((a,b,c,e)=>{d(a).bufferSubData(b>>>Z,c,d(e))});c.wbg.__wbg_compressedTexSubImage2D_db8b170a99900aff=((a,b,c,e,f,g,h,i,j)=>{d(a).compressedTexSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,d(j))});c.wbg.__wbg_readPixels_551d0505625c865b=function(){return E(((a,b,c,e,f,g,h,i)=>{d(a).readPixels(b,c,e,f,g>>>Z,h>>>Z,d(i))}),arguments)};c.wbg.__wbg_texImage2D_a14a3c7863e25c89=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_texSubImage2D_55a407e48f3a5cb4=function(){return E(((a,b,c,e,f,g,h,i,j,k)=>{d(a).texSubImage2D(b>>>Z,c,e,f,g,h,i>>>Z,j>>>Z,d(k))}),arguments)};c.wbg.__wbg_uniform2fv_dcb8b73e2637092a=((a,b,c,e)=>{d(a).uniform2fv(d(b),L(c,e))});c.wbg.__wbg_uniform2iv_fc73855d9dec793a=((a,b,c,e)=>{d(a).uniform2iv(d(b),F(c,e))});c.wbg.__wbg_uniform3fv_3e32c897d3ed1eaa=((a,b,c,e)=>{d(a).uniform3fv(d(b),L(c,e))});c.wbg.__wbg_uniform3iv_2b3fa9d97dff01a2=((a,b,c,e)=>{d(a).uniform3iv(d(b),F(c,e))});c.wbg.__wbg_uniform4fv_980ce05d950ee599=((a,b,c,e)=>{d(a).uniform4fv(d(b),L(c,e))});c.wbg.__wbg_uniform4iv_f112dcc4401f5469=((a,b,c,e)=>{d(a).uniform4iv(d(b),F(c,e))});c.wbg.__wbg_uniformMatrix2fv_4417ed4d88a140be=((a,b,c,e,f)=>{d(a).uniformMatrix2fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix3fv_d46553a1248946b5=((a,b,c,e,f)=>{d(a).uniformMatrix3fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_uniformMatrix4fv_cd46ed81bccb0cb2=((a,b,c,e,f)=>{d(a).uniformMatrix4fv(d(b),c!==Z,L(e,f))});c.wbg.__wbg_activeTexture_5f084e1b3f14853e=((a,b)=>{d(a).activeTexture(b>>>Z)});c.wbg.__wbg_attachShader_6397dc4fd87343d3=((a,b,c)=>{d(a).attachShader(d(b),d(c))});c.wbg.__wbg_bindAttribLocation_7ab87f5815dce9f0=((a,b,c,e,f)=>{d(a).bindAttribLocation(d(b),c>>>Z,l(e,f))});c.wbg.__wbg_bindBuffer_1e5043751efddd4f=((a,b,c)=>{d(a).bindBuffer(b>>>Z,d(c))});c.wbg.__wbg_bindFramebuffer_c301d73a2c2842bb=((a,b,c)=>{d(a).bindFramebuffer(b>>>Z,d(c))});c.wbg.__wbg_bindRenderbuffer_8ec7d02bd60bdfb2=((a,b,c)=>{d(a).bindRenderbuffer(b>>>Z,d(c))});c.wbg.__wbg_bindTexture_772f5eb022019d87=((a,b,c)=>{d(a).bindTexture(b>>>Z,d(c))});c.wbg.__wbg_blendColor_f25a274ecd388a1e=((a,b,c,e,f)=>{d(a).blendColor(b,c,e,f)});c.wbg.__wbg_blendEquation_a442d97b5c6efedb=((a,b)=>{d(a).blendEquation(b>>>Z)});c.wbg.__wbg_blendEquationSeparate_721f30ba584a5233=((a,b,c)=>{d(a).blendEquationSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFunc_fc4b298f39801a9c=((a,b,c)=>{d(a).blendFunc(b>>>Z,c>>>Z)});c.wbg.__wbg_blendFuncSeparate_abe2ad4272c8365e=((a,b,c,e,f)=>{d(a).blendFuncSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_clear_f9731a47df2e70d8=((a,b)=>{d(a).clear(b>>>Z)});c.wbg.__wbg_clearColor_42707553c40e0e0f=((a,b,c,e,f)=>{d(a).clearColor(b,c,e,f)});c.wbg.__wbg_clearDepth_42ac48f2ab25c419=((a,b)=>{d(a).clearDepth(b)});c.wbg.__wbg_clearStencil_0f906e2d8b61aa7a=((a,b)=>{d(a).clearStencil(b)});c.wbg.__wbg_colorMask_03aa359acc86fd70=((a,b,c,e,f)=>{d(a).colorMask(b!==Z,c!==Z,e!==Z,f!==Z)});c.wbg.__wbg_compileShader_3af4719dfdb508e3=((a,b)=>{d(a).compileShader(d(b))});c.wbg.__wbg_copyTexSubImage2D_0e21b1e1089c410a=((a,b,c,e,f,g,h,i,j)=>{d(a).copyTexSubImage2D(b>>>Z,c,e,f,g,h,i,j)});c.wbg.__wbg_createBuffer_34e01f5c10929b41=(a=>{const b=d(a).createBuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createFramebuffer_49ca64e9e1c6f5eb=(a=>{const b=d(a).createFramebuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createProgram_9affbfa62b7b2608=(a=>{const b=d(a).createProgram();return m(b)?Z:h(b)});c.wbg.__wbg_createRenderbuffer_375d7f4004bc49bd=(a=>{const b=d(a).createRenderbuffer();return m(b)?Z:h(b)});c.wbg.__wbg_createShader_55ca04b44164bd41=((a,b)=>{const c=d(a).createShader(b>>>Z);return m(c)?Z:h(c)});c.wbg.__wbg_createTexture_c13c31b2b132c17f=(a=>{const b=d(a).createTexture();return m(b)?Z:h(b)});c.wbg.__wbg_cullFace_af37bb1c2d22ab73=((a,b)=>{d(a).cullFace(b>>>Z)});c.wbg.__wbg_deleteBuffer_96df38349e3487d2=((a,b)=>{d(a).deleteBuffer(d(b))});c.wbg.__wbg_deleteFramebuffer_417b62b6156d4894=((a,b)=>{d(a).deleteFramebuffer(d(b))});c.wbg.__wbg_deleteProgram_641402f7551587d8=((a,b)=>{d(a).deleteProgram(d(b))});c.wbg.__wbg_deleteRenderbuffer_d3aedb394b1ea546=((a,b)=>{d(a).deleteRenderbuffer(d(b))});c.wbg.__wbg_deleteShader_e5c778f25b722e68=((a,b)=>{d(a).deleteShader(d(b))});c.wbg.__wbg_deleteTexture_f89d8e417b156960=((a,b)=>{d(a).deleteTexture(d(b))});c.wbg.__wbg_depthFunc_1ee4bf1e0127bf7f=((a,b)=>{d(a).depthFunc(b>>>Z)});c.wbg.__wbg_depthMask_dd6cd8a9aff90e5c=((a,b)=>{d(a).depthMask(b!==Z)});c.wbg.__wbg_depthRange_7e521414b51cf5de=((a,b,c)=>{d(a).depthRange(b,c)});c.wbg.__wbg_disable_5dd8c3842de93e92=((a,b)=>{d(a).disable(b>>>Z)});c.wbg.__wbg_disableVertexAttribArray_12bc9adefa738796=((a,b)=>{d(a).disableVertexAttribArray(b>>>Z)});c.wbg.__wbg_drawArrays_f619a26a53ab5ab3=((a,b,c,e)=>{d(a).drawArrays(b>>>Z,c,e)});c.wbg.__wbg_enable_7abe812a71c76206=((a,b)=>{d(a).enable(b>>>Z)});c.wbg.__wbg_enableVertexAttribArray_6d44444aa994f42a=((a,b)=>{d(a).enableVertexAttribArray(b>>>Z)});c.wbg.__wbg_framebufferRenderbuffer_e1c9c64aea848b39=((a,b,c,e,f)=>{d(a).framebufferRenderbuffer(b>>>Z,c>>>Z,e>>>Z,d(f))});c.wbg.__wbg_framebufferTexture2D_66e1968fd5b7b3e3=((a,b,c,e,f,g)=>{d(a).framebufferTexture2D(b>>>Z,c>>>Z,e>>>Z,d(f),g)});c.wbg.__wbg_frontFace_bb8a1ded6f52865e=((a,b)=>{d(a).frontFace(b>>>Z)});c.wbg.__wbg_getParameter_a77768abe8a51f24=function(){return E(((a,b)=>{const c=d(a).getParameter(b>>>Z);return h(c)}),arguments)};c.wbg.__wbg_getProgramInfoLog_bf1fba8fa90667c7=((a,c,e)=>{const f=d(c).getProgramInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getProgramParameter_10c8a43809fb8c2e=((a,b,c)=>{const e=d(a).getProgramParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getShaderInfoLog_0262cb299092ce92=((a,c,e)=>{const f=d(c).getShaderInfoLog(d(e));var g=m(f)?Z:u(f,b.__wbindgen_malloc,b.__wbindgen_realloc);var h=r;q()[a/a7+ W]=h;q()[a/a7+ Z]=g});c.wbg.__wbg_getShaderParameter_60b69083e8d662ce=((a,b,c)=>{const e=d(a).getShaderParameter(d(b),c>>>Z);return h(e)});c.wbg.__wbg_getUniformLocation_6eedfb513ccce732=((a,b,c,e)=>{const f=d(a).getUniformLocation(d(b),l(c,e));return m(f)?Z:h(f)});c.wbg.__wbg_linkProgram_af5fed9dc3f1cdf9=((a,b)=>{d(a).linkProgram(d(b))});c.wbg.__wbg_pixelStorei_054e50b5fdc17824=((a,b,c)=>{d(a).pixelStorei(b>>>Z,c)});c.wbg.__wbg_polygonOffset_2927e355350d4327=((a,b,c)=>{d(a).polygonOffset(b,c)});c.wbg.__wbg_renderbufferStorage_f41b3c99f6a8f25e=((a,b,c,e,f)=>{d(a).renderbufferStorage(b>>>Z,c>>>Z,e,f)});c.wbg.__wbg_scissor_75ba2245d4db0eaf=((a,b,c,e,f)=>{d(a).scissor(b,c,e,f)});c.wbg.__wbg_shaderSource_7891a1fcb69a0023=((a,b,c,e)=>{d(a).shaderSource(d(b),l(c,e))});c.wbg.__wbg_stencilFuncSeparate_a3699f92e69c1494=((a,b,c,e,f)=>{d(a).stencilFuncSeparate(b>>>Z,c>>>Z,e,f>>>Z)});c.wbg.__wbg_stencilMask_c5ad44ea27c5f169=((a,b)=>{d(a).stencilMask(b>>>Z)});c.wbg.__wbg_stencilMaskSeparate_a7830b1e1eabf5bd=((a,b,c)=>{d(a).stencilMaskSeparate(b>>>Z,c>>>Z)});c.wbg.__wbg_stencilOpSeparate_321604240216c55c=((a,b,c,e,f)=>{d(a).stencilOpSeparate(b>>>Z,c>>>Z,e>>>Z,f>>>Z)});c.wbg.__wbg_texParameteri_d1035ed45d6c5655=((a,b,c,e)=>{d(a).texParameteri(b>>>Z,c>>>Z,e)});c.wbg.__wbg_uniform1f_8914cb45b3ad5887=((a,b,c)=>{d(a).uniform1f(d(b),c)});c.wbg.__wbg_uniform1i_badd5ff70c0d30bf=((a,b,c)=>{d(a).uniform1i(d(b),c)});c.wbg.__wbg_uniform4f_fb56c7f4de64dd4c=((a,b,c,e,f,g)=>{d(a).uniform4f(d(b),c,e,f,g)});c.wbg.__wbg_useProgram_c637e43f9cd4c07a=((a,b)=>{d(a).useProgram(d(b))});c.wbg.__wbg_vertexAttribPointer_c25e4c5ed17f8a1d=((a,b,c,e,f,g,h)=>{d(a).vertexAttribPointer(b>>>Z,c,e>>>Z,f!==Z,g,h)});c.wbg.__wbg_viewport_221ade2aef6032c8=((a,b,c,e,f)=>{d(a).viewport(b,c,e,f)});c.wbg.__wbg_style_c3fc3dd146182a2d=(a=>{const b=d(a).style;return h(b)});c.wbg.__wbg_focus_39d4b8ba8ff9df14=function(){return E((a=>{d(a).focus()}),arguments)};c.wbg.__wbg_error_6e987ee48d9fdf45=((a,b)=>{console.error(d(a),d(b))});c.wbg.__wbg_instanceof_HtmlCanvasElement_46bdbf323b0b18d1=(a=>{let b;try{b=d(a) instanceof HTMLCanvasElement}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_width_aee8b8809b033b05=(a=>{const b=d(a).width;return b});c.wbg.__wbg_setwidth_080107476e633963=((a,b)=>{d(a).width=b>>>Z});c.wbg.__wbg_height_80053d3c71b338e0=(a=>{const b=d(a).height;return b});c.wbg.__wbg_setheight_dc240617639f1f51=((a,b)=>{d(a).height=b>>>Z});c.wbg.__wbg_getContext_fec464290556673c=function(){return E(((a,b,c,e)=>{const f=d(a).getContext(l(b,c),d(e));return m(f)?Z:h(f)}),arguments)};c.wbg.__wbg_new_4e95a9abecc83cd4=function(){return E((a=>{const b=new IntersectionObserver(d(a));return h(b)}),arguments)};c.wbg.__wbg_disconnect_e694940ce6d0ef91=(a=>{d(a).disconnect()});c.wbg.__wbg_observe_538a6d1df0deb993=((a,b)=>{d(a).observe(d(b))});c.wbg.__wbg_isIntersecting_082397a1d66e2e35=(a=>{const b=d(a).isIntersecting;return b});c.wbg.__wbg_appendChild_580ccb11a660db68=function(){return E(((a,b)=>{const c=d(a).appendChild(d(b));return h(c)}),arguments)};c.wbg.__wbg_contains_fdfd1dc667f36695=((a,b)=>{const c=d(a).contains(d(b));return c});c.wbg.__wbg_contentRect_bce644376332c7a5=(a=>{const b=d(a).contentRect;return h(b)});c.wbg.__wbg_devicePixelContentBoxSize_d5bcdcd5e96671f3=(a=>{const b=d(a).devicePixelContentBoxSize;return h(b)});c.wbg.__wbg_drawArraysInstancedANGLE_6afae595a484db93=((a,b,c,e,f)=>{d(a).drawArraysInstancedANGLE(b>>>Z,c,e,f)});c.wbg.__wbg_drawElementsInstancedANGLE_f175a178d553357e=((a,b,c,e,f,g)=>{d(a).drawElementsInstancedANGLE(b>>>Z,c,e>>>Z,f,g)});c.wbg.__wbg_vertexAttribDivisorANGLE_b258d7388e466921=((a,b,c)=>{d(a).vertexAttribDivisorANGLE(b>>>Z,c>>>Z)});c.wbg.__wbg_copyToChannel_c5200b51ff33f8a3=function(){return E(((a,b,c,e)=>{d(a).copyToChannel(L(b,c),e)}),arguments)};c.wbg.__wbg_media_bcef0e2ec4383569=((a,c)=>{const e=d(c).media;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_matches_e14ed9ff8291cf24=(a=>{const b=d(a).matches;return b});c.wbg.__wbg_addListener_143ad0a501fabc3a=function(){return E(((a,b)=>{d(a).addListener(d(b))}),arguments)};c.wbg.__wbg_removeListener_46f3ee00c5b95320=function(){return E(((a,b)=>{d(a).removeListener(d(b))}),arguments)};c.wbg.__wbg_setonmessage_93bdba94dcd46c04=((a,b)=>{d(a).onmessage=d(b)});c.wbg.__wbg_close_a5883ed21dc3d115=(a=>{d(a).close()});c.wbg.__wbg_postMessage_fbddfe9314af804e=function(){return E(((a,b)=>{d(a).postMessage(d(b))}),arguments)};c.wbg.__wbg_start_5a293222bc398f51=(a=>{d(a).start()});c.wbg.__wbg_ctrlKey_008695ce60a588f5=(a=>{const b=d(a).ctrlKey;return b});c.wbg.__wbg_shiftKey_1e76dbfcdd36a4b4=(a=>{const b=d(a).shiftKey;return b});c.wbg.__wbg_altKey_07da841b54bd3ed6=(a=>{const b=d(a).altKey;return b});c.wbg.__wbg_metaKey_86bfd3b0d3a8083f=(a=>{const b=d(a).metaKey;return b});c.wbg.__wbg_button_367cdc7303e3cf9b=(a=>{const b=d(a).button;return b});c.wbg.__wbg_buttons_d004fa75ac704227=(a=>{const b=d(a).buttons;return b});c.wbg.__wbg_movementX_b800a0cacd14d9bf=(a=>{const b=d(a).movementX;return b});c.wbg.__wbg_movementY_7907e03eb8c0ea1e=(a=>{const b=d(a).movementY;return b});c.wbg.__wbg_persisted_cbb7e3c657029516=(a=>{const b=d(a).persisted;return b});c.wbg.__wbg_deltaX_206576827ededbe5=(a=>{const b=d(a).deltaX;return b});c.wbg.__wbg_deltaY_032e327e216f2b2b=(a=>{const b=d(a).deltaY;return b});c.wbg.__wbg_deltaMode_294b2eaf54047265=(a=>{const b=d(a).deltaMode;return b});c.wbg.__wbg_setchannelCount_e4575f9fe161ad45=((a,b)=>{d(a).channelCount=b>>>Z});c.wbg.__wbg_connect_186433827476e7d8=function(){return E(((a,b)=>{const c=d(a).connect(d(b));return h(c)}),arguments)};c.wbg.__wbg_x_c0e76d143979338a=(a=>{const b=d(a).x;return b});c.wbg.__wbg_y_047a9fda606ab8ef=(a=>{const b=d(a).y;return b});c.wbg.__wbg_altKey_2e6c34c37088d8b1=(a=>{const b=d(a).altKey;return b});c.wbg.__wbg_ctrlKey_bb5b6fef87339703=(a=>{const b=d(a).ctrlKey;return b});c.wbg.__wbg_shiftKey_5911baf439ab232b=(a=>{const b=d(a).shiftKey;return b});c.wbg.__wbg_metaKey_6bf4ae4e83a11278=(a=>{const b=d(a).metaKey;return b});c.wbg.__wbg_location_f7b033ddfc516739=(a=>{const b=d(a).location;return b});c.wbg.__wbg_repeat_f64b916c6eed0685=(a=>{const b=d(a).repeat;return b});c.wbg.__wbg_key_dccf9e8aa1315a8e=((a,c)=>{const e=d(c).key;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_code_3b0c3912a2351163=((a,c)=>{const e=d(c).code;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_port1_d51a1bd2c33125d0=(a=>{const b=d(a).port1;return h(b)});c.wbg.__wbg_port2_f522a81e92362e7e=(a=>{const b=d(a).port2;return h(b)});c.wbg.__wbg_new_34615e164dc78975=function(){return E((()=>{const a=new MessageChannel();return h(a)}),arguments)};c.wbg.__wbg_pointerId_e030fa156647fedd=(a=>{const b=d(a).pointerId;return b});c.wbg.__wbg_pressure_99cd07399f942a7c=(a=>{const b=d(a).pressure;return b});c.wbg.__wbg_pointerType_0f2f0383406aa7fa=((a,c)=>{const e=d(c).pointerType;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_getCoalescedEvents_14b443b6f75837a2=(a=>{const b=d(a).getCoalescedEvents();return h(b)});c.wbg.__wbg_getPropertyValue_fa32ee1811f224cb=function(){return E(((a,c,e,f)=>{const g=d(c).getPropertyValue(l(e,f));const h=u(g,b.__wbindgen_malloc,b.__wbindgen_realloc);const i=r;q()[a/a7+ W]=i;q()[a/a7+ Z]=h}),arguments)};c.wbg.__wbg_removeProperty_fa6d48e2923dcfac=function(){return E(((a,c,e,f)=>{const g=d(c).removeProperty(l(e,f));const h=u(g,b.__wbindgen_malloc,b.__wbindgen_realloc);const i=r;q()[a/a7+ W]=i;q()[a/a7+ Z]=h}),arguments)};c.wbg.__wbg_setProperty_ea7d15a2b591aa97=function(){return E(((a,b,c,e,f)=>{d(a).setProperty(l(b,c),l(e,f))}),arguments)};c.wbg.__wbg_videoWidth_f0b751704b53672c=(a=>{const b=d(a).videoWidth;return b});c.wbg.__wbg_videoHeight_e75550285bbbfdab=(a=>{const b=d(a).videoHeight;return b});c.wbg.__wbg_width_6aa39fc77f088914=(a=>{const b=d(a).width;return b});c.wbg.__wbg_setwidth_83d936c4b04dcbec=((a,b)=>{d(a).width=b>>>Z});c.wbg.__wbg_height_05a87854adf24d83=(a=>{const b=d(a).height;return b});c.wbg.__wbg_setheight_6025ba0d58e6cc8c=((a,b)=>{d(a).height=b>>>Z});c.wbg.__wbg_getContext_c9fc178d1fa6f8fe=function(){return E(((a,b,c,e)=>{const f=d(a).getContext(l(b,c),d(e));return m(f)?Z:h(f)}),arguments)};c.wbg.__wbg_signal_a61f78a3478fd9bc=(a=>{const b=d(a).signal;return h(b)});c.wbg.__wbg_new_0d76b0581eca6298=function(){return E((()=>{const a=new AbortController();return h(a)}),arguments)};c.wbg.__wbg_abort_2aa7521d5690750e=(a=>{d(a).abort()});c.wbg.__wbg_setbuffer_1793c076d39c6617=((a,b)=>{d(a).buffer=d(b)});c.wbg.__wbg_setonended_ad220d8d48b1642c=((a,b)=>{d(a).onended=d(b)});c.wbg.__wbg_start_07ac75070dcdd1a2=function(){return E(((a,b)=>{d(a).start(b)}),arguments)};c.wbg.__wbg_addEventListener_53b787075bd5e003=function(){return E(((a,b,c,e)=>{d(a).addEventListener(l(b,c),d(e))}),arguments)};c.wbg.__wbg_removeEventListener_92cb9b3943463338=function(){return E(((a,b,c,e)=>{d(a).removeEventListener(l(b,c),d(e))}),arguments)};c.wbg.__wbg_pressed_8ce1dba50075450f=(a=>{const b=d(a).pressed;return b});c.wbg.__wbg_value_e2e2cdd91a28c650=(a=>{const b=d(a).value;return b});c.wbg.__wbg_bindVertexArrayOES_abe2fd389c6a2f56=((a,b)=>{d(a).bindVertexArrayOES(d(b))});c.wbg.__wbg_createVertexArrayOES_886be8a08db32ce6=(a=>{const b=d(a).createVertexArrayOES();return m(b)?Z:h(b)});c.wbg.__wbg_deleteVertexArrayOES_153f352862874f30=((a,b)=>{d(a).deleteVertexArrayOES(d(b))});c.wbg.__wbg_inlineSize_ff0e40258cefeba2=(a=>{const b=d(a).inlineSize;return b});c.wbg.__wbg_blockSize_73f4e5608c08713d=(a=>{const b=d(a).blockSize;return b});c.wbg.__wbg_destination_0014df38da590ed6=(a=>{const b=d(a).destination;return h(b)});c.wbg.__wbg_currentTime_9bc85e1579050a3f=(a=>{const b=d(a).currentTime;return b});c.wbg.__wbg_newwithcontextoptions_cd911d6d2ece88e4=function(){return E((b=>{const c=new a(d(b));return h(c)}),arguments)};c.wbg.__wbg_close_72f0f505a65b831b=function(){return E((a=>{const b=d(a).close();return h(b)}),arguments)};c.wbg.__wbg_createBuffer_2db05bc15a2e2745=function(){return E(((a,b,c,e)=>{const f=d(a).createBuffer(b>>>Z,c>>>Z,e);return h(f)}),arguments)};c.wbg.__wbg_createBufferSource_0d65cd58ccd38511=function(){return E((a=>{const b=d(a).createBufferSource();return h(b)}),arguments)};c.wbg.__wbg_resume_cda1a6cb84e7cf47=function(){return E((a=>{const b=d(a).resume();return h(b)}),arguments)};c.wbg.__wbg_instanceof_DomException_b276ad070353116f=(a=>{let b;try{b=d(a) instanceof DOMException}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_message_c539585471131985=((a,c)=>{const e=d(c).message;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_instanceof_Response_849eb93e75734b6e=(a=>{let b;try{b=d(a) instanceof Response}catch(a){b=!1}const c=b;return c});c.wbg.__wbg_status_61a01141acd3cf74=(a=>{const b=d(a).status;return b});c.wbg.__wbg_arrayBuffer_29931d52c7206b02=function(){return E((a=>{const b=d(a).arrayBuffer();return h(b)}),arguments)};c.wbg.__wbg_drawBuffersWEBGL_4c663e042e093892=((a,b)=>{d(a).drawBuffersWEBGL(d(b))});c.wbg.__wbg_preventDefault_b1a4aafc79409429=(a=>{d(a).preventDefault()});c.wbg.__wbg_id_37ec709c32c9fbba=((a,c)=>{const e=d(c).id;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbg_index_6496f9ffb375b0b0=(a=>{const b=d(a).index;return b});c.wbg.__wbg_mapping_9abc7f90b7413b6f=(a=>{const b=d(a).mapping;return h(b)});c.wbg.__wbg_connected_24640dcb98642477=(a=>{const b=d(a).connected;return b});c.wbg.__wbg_buttons_3aabea55baa2acb8=(a=>{const b=d(a).buttons;return h(b)});c.wbg.__wbg_axes_23d02bdd88605707=(a=>{const b=d(a).axes;return h(b)});c.wbg.__wbg_userAgent_e94c7cbcdac01fea=function(){return E(((a,c)=>{const e=d(c).userAgent;const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f}),arguments)};c.wbg.__wbg_getGamepads_50300c1f61632118=function(){return E((a=>{const b=d(a).getGamepads();return h(b)}),arguments)};c.wbg.__wbg_framebufferTextureMultiviewOVR_a4eb1a11052508f4=((a,b,c,e,f,g,h)=>{d(a).framebufferTextureMultiviewOVR(b>>>Z,c>>>Z,d(e),f,g,h)});c.wbg.__wbg_new_61d4f20a1c08a45c=function(){return E((a=>{const b=new ResizeObserver(d(a));return h(b)}),arguments)};c.wbg.__wbg_disconnect_6675f32e2ae8deb7=(a=>{d(a).disconnect()});c.wbg.__wbg_observe_a79646ce7bb08cb8=((a,b)=>{d(a).observe(d(b))});c.wbg.__wbg_observe_dc0ebcd59ee7cd17=((a,b,c)=>{d(a).observe(d(b),d(c))});c.wbg.__wbg_unobserve_55c93518cad6ac06=((a,b)=>{d(a).unobserve(d(b))});c.wbg.__wbg_getSupportedProfiles_904a0392ad42295b=(a=>{const b=d(a).getSupportedProfiles();return m(b)?Z:h(b)});c.wbg.__wbg_maxChannelCount_f1628437dca322e3=(a=>{const b=d(a).maxChannelCount;return b});c.wbg.__wbg_width_1e8430024cb82aba=(a=>{const b=d(a).width;return b});c.wbg.__wbg_height_0c1394f089d7bb71=(a=>{const b=d(a).height;return b});c.wbg.__wbg_width_0e2f1c393242f16e=(a=>{const b=d(a).width;return b});c.wbg.__wbg_height_d6c8a3041eff461a=(a=>{const b=d(a).height;return b});c.wbg.__wbg_queueMicrotask_481971b0d87f3dd4=(a=>{queueMicrotask(d(a))});c.wbg.__wbg_queueMicrotask_3cbae2ec6b6cd3d6=(a=>{const b=d(a).queueMicrotask;return h(b)});c.wbg.__wbindgen_is_function=(a=>{const b=typeof d(a)===a0;return b});c.wbg.__wbg_performance_eeefc685c9bc38b4=(a=>{const b=d(a).performance;return h(b)});c.wbg.__wbg_now_e0d8ec93dd25766a=(a=>{const b=d(a).now();return b});c.wbg.__wbg_crypto_d05b68a3572bb8ca=(a=>{const b=d(a).crypto;return h(b)});c.wbg.__wbindgen_is_object=(a=>{const b=d(a);const c=typeof b===`object`&&b!==V;return c});c.wbg.__wbg_process_b02b3570280d0366=(a=>{const b=d(a).process;return h(b)});c.wbg.__wbg_versions_c1cb42213cedf0f5=(a=>{const b=d(a).versions;return h(b)});c.wbg.__wbg_node_43b1089f407e4ec2=(a=>{const b=d(a).node;return h(b)});c.wbg.__wbindgen_is_string=(a=>{const b=typeof d(a)===a3;return b});c.wbg.__wbg_require_9a7e0f667ead4995=function(){return E((()=>{const a=module.require;return h(a)}),arguments)};c.wbg.__wbg_msCrypto_10fc94afee92bd76=(a=>{const b=d(a).msCrypto;return h(b)});c.wbg.__wbg_randomFillSync_b70ccbdf4926a99d=function(){return E(((a,b)=>{d(a).randomFillSync(g(b))}),arguments)};c.wbg.__wbg_getRandomValues_7e42b4fb8779dc6d=function(){return E(((a,b)=>{d(a).getRandomValues(d(b))}),arguments)};c.wbg.__wbg_get_bd8e338fbd5f5cc8=((a,b)=>{const c=d(a)[b>>>Z];return h(c)});c.wbg.__wbg_length_cd7af8117672b8b8=(a=>{const b=d(a).length;return b});c.wbg.__wbg_new_16b304a2cfa7ff4a=(()=>{const a=new U();return h(a)});c.wbg.__wbg_newnoargs_e258087cd0daa0ea=((a,b)=>{const c=new Function(l(a,b));return h(c)});c.wbg.__wbg_call_27c0f87801dedf93=function(){return E(((a,b)=>{const c=d(a).call(d(b));return h(c)}),arguments)};c.wbg.__wbg_new_72fb9a18b5ae2624=(()=>{const a=new aa();return h(a)});c.wbg.__wbg_self_ce0dbfc45cf2f5be=function(){return E((()=>{const a=self.self;return h(a)}),arguments)};c.wbg.__wbg_window_c6fb939a7f436783=function(){return E((()=>{const a=window.window;return h(a)}),arguments)};c.wbg.__wbg_globalThis_d1e6af4856ba331b=function(){return E((()=>{const a=globalThis.globalThis;return h(a)}),arguments)};c.wbg.__wbg_global_207b558942527489=function(){return E((()=>{const a=global.global;return h(a)}),arguments)};c.wbg.__wbg_eval_020a6ea487e91ede=function(){return E(((a,b)=>{const c=eval(l(a,b));return h(c)}),arguments)};c.wbg.__wbg_includes_310a37f41280ae42=((a,b,c)=>{const e=d(a).includes(d(b),c);return e});c.wbg.__wbg_of_4a2b313a453ec059=(a=>{const b=U.of(d(a));return h(b)});c.wbg.__wbg_push_a5b05aedc7234f9f=((a,b)=>{const c=d(a).push(d(b));return c});c.wbg.__wbg_call_b3ca7c6051f9bec1=function(){return E(((a,b,c)=>{const e=d(a).call(d(b),d(c));return h(e)}),arguments)};c.wbg.__wbg_now_3014639a94423537=(()=>{const a=Date.now();return a});c.wbg.__wbg_getOwnPropertyDescriptor_fcb32c9a1f90b136=((a,b)=>{const c=aa.getOwnPropertyDescriptor(d(a),d(b));return h(c)});c.wbg.__wbg_is_010fdc0f4ab96916=((a,b)=>{const c=aa.is(d(a),d(b));return c});c.wbg.__wbg_exec_b9996525463e30df=((a,b,c)=>{const e=d(a).exec(l(b,c));return m(e)?Z:h(e)});c.wbg.__wbg_new_3c970fa9da0c5794=((a,b,c,d)=>{const e=new RegExp(l(a,b),l(c,d));return h(e)});c.wbg.__wbg_resolve_b0083a7967828ec8=(a=>{const b=Promise.resolve(d(a));return h(b)});c.wbg.__wbg_catch_0260e338d10f79ae=((a,b)=>{const c=d(a).catch(d(b));return h(c)});c.wbg.__wbg_then_0c86a60e8fcfe9f6=((a,b)=>{const c=d(a).then(d(b));return h(c)});c.wbg.__wbg_then_a73caa9a87991566=((a,b,c)=>{const e=d(a).then(d(b),d(c));return h(e)});c.wbg.__wbg_buffer_12d079cc21e14bdb=(a=>{const b=d(a).buffer;return h(b)});c.wbg.__wbg_newwithbyteoffsetandlength_41559f654c4e743c=((a,b,c)=>{const e=new Int8Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_4bea9f904a7e0aef=((a,b,c)=>{const e=new Int16Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_425360430a1c8206=((a,b,c)=>{const e=new $(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=((a,b,c)=>{const e=new _(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_new_63b92bc8671ed464=(a=>{const b=new _(d(a));return h(b)});c.wbg.__wbg_set_a47bac70306a19a7=((a,b,c)=>{d(a).set(d(b),c>>>Z)});c.wbg.__wbg_length_c20a40f15020d68a=(a=>{const b=d(a).length;return b});c.wbg.__wbg_newwithbyteoffsetandlength_9fd64654bc0b0817=((a,b,c)=>{const e=new Uint16Array(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_3125852e5a7fbcff=((a,b,c)=>{const e=new a8(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithbyteoffsetandlength_4a659d079a1650e0=((a,b,c)=>{const e=new a9(d(a),b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_newwithlength_e9b4878cebadb3d3=(a=>{const b=new _(a>>>Z);return h(b)});c.wbg.__wbg_subarray_a1f73cd4b5b42fe1=((a,b,c)=>{const e=d(a).subarray(b>>>Z,c>>>Z);return h(e)});c.wbg.__wbg_stringify_8887fe74e1c50d81=function(){return E((a=>{const b=a5(d(a));return h(b)}),arguments)};c.wbg.__wbg_set_1f9b04f170055d33=function(){return E(((a,b,c)=>{const e=Reflect.set(d(a),d(b),d(c));return e}),arguments)};c.wbg.__wbindgen_debug_string=((a,c)=>{const e=v(d(c));const f=u(e,b.__wbindgen_malloc,b.__wbindgen_realloc);const g=r;q()[a/a7+ W]=g;q()[a/a7+ Z]=f});c.wbg.__wbindgen_throw=((a,b)=>{throw new Y(l(a,b))});c.wbg.__wbindgen_memory=(()=>{const a=b.memory;return h(a)});c.wbg.__wbindgen_closure_wrapper18127=((a,b,c)=>{const d=x(a,b,ab,y);return h(d)});c.wbg.__wbindgen_closure_wrapper18134=((a,b,c)=>{const d=x(a,b,ab,y);return h(d)});c.wbg.__wbindgen_closure_wrapper18137=((a,b,c)=>{const d=x(a,b,ab,z);return h(d)});c.wbg.__wbindgen_closure_wrapper18605=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18607=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18609=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18611=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper18613=((a,b,c)=>{const d=x(a,b,ac,B);return h(d)});c.wbg.__wbindgen_closure_wrapper18623=((a,b,c)=>{const d=x(a,b,ac,A);return h(d)});c.wbg.__wbindgen_closure_wrapper53121=((a,b,c)=>{const d=x(a,b,34731,C);return h(d)});c.wbg.__wbindgen_closure_wrapper98475=((a,b,c)=>{const d=x(a,b,62004,D);return h(d)});return c});var H=(()=>{if(G===V||G.byteLength===Z){G=new a8(b.memory.buffer)};return G});var u=((a,b,c)=>{if(c===T){const c=s.encode(a);const d=b(c.length,W)>>>Z;k().subarray(d,d+ c.length).set(c);r=c.length;return d};let d=a.length;let e=b(d,W)>>>Z;const f=k();let g=Z;for(;g127)break;f[e+ g]=b};if(g!==d){if(g!==Z){a=a.slice(g)};e=c(e,d,d=g+ a.length*3,W)>>>Z;const b=k().subarray(e+ g,e+ d);const f=t(a,b);g+=f.written;e=c(e,d,g,W)>>>Z};r=g;return e});var k=(()=>{if(j===V||j.byteLength===Z){j=new _(b.memory.buffer)};return j});var B=((a,c)=>{b.wasm_bindgen__convert__closures__invoke0_mut__hdb130180d3bcd954(a,c)});var M=(async(a,b)=>{if(typeof Response===a0&&a instanceof Response){if(typeof WebAssembly.instantiateStreaming===a0){try{return await WebAssembly.instantiateStreaming(a,b)}catch(b){if(a.headers.get(`Content-Type`)!=`application/wasm`){console.warn(`\`WebAssembly.instantiateStreaming\` failed because your server does not serve wasm with \`application/wasm\` MIME type. Falling back to \`WebAssembly.instantiate\` which is slower. Original error:\\n`,b)}else{throw b}}};const c=await a.arrayBuffer();return await WebAssembly.instantiate(c,b)}else{const c=await WebAssembly.instantiate(a,b);if(c instanceof WebAssembly.Instance){return {instance:c,module:a}}else{return c}}});var D=((a,c,d)=>{b._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc45fd2ee2f2bb863(a,c,h(d))});var F=((a,b)=>{a=a>>>Z;return q().subarray(a/a7,a/a7+ b)});var I=((a,b)=>{a=a>>>Z;return H().subarray(a/a7,a/a7+ b)});var h=(a=>{if(e===c.length)c.push(c.length+ W);const b=e;e=c[b];c[b]=a;return b});var g=(a=>{const b=d(a);f(a);return b});var q=(()=>{if(p===V||p.byteLength===Z){p=new $(b.memory.buffer)};return p});var C=((a,c)=>{b.wasm_bindgen__convert__closures__invoke0_mut__hbb34f9ef7e8aa7da(a,c)});var R=(async(a)=>{if(b!==T)return b;if(typeof a===S){a=new URL(`bevy-example_bg.wasm`,import.meta.url)};const c=N();if(typeof a===a3||typeof Request===a0&&a instanceof Request||typeof URL===a0&&a instanceof URL){a=fetch(a)};O(c);const {instance:d,module:e}=await M(await a,c);return P(d,e)});var f=(a=>{if(a<132)return;c[a]=e;e=a});var Q=(a=>{if(b!==T)return b;const c=N();O(c);if(!(a instanceof WebAssembly.Module)){a=new WebAssembly.Module(a)};const d=new WebAssembly.Instance(a,c);return P(d,a)});var P=((a,c)=>{b=a.exports;R.__wbindgen_wasm_module=c;J=V;n=V;p=V;G=V;j=V;b.__wbindgen_start();return b});var x=((a,c,d,e)=>{const f={a:a,b:c,cnt:W,dtor:d};const g=(...a)=>{f.cnt++;const c=f.a;f.a=Z;try{return e(c,f.b,...a)}finally{if(--f.cnt===Z){b.__wbindgen_export_2.get(f.dtor)(c,f.b);w.unregister(f)}else{f.a=c}}};g.original=f;w.register(g,f,f);return g});var l=((a,b)=>{a=a>>>Z;return i.decode(k().subarray(a,a+ b))});var y=((a,c,d)=>{b.wasm_bindgen__convert__closures__invoke1_mut__h1a0e112ba6b4e1ef(a,c,h(d))});const a=typeof AudioContext!==S?AudioContext:(typeof webkitAudioContext!==S?webkitAudioContext:T);let b;const c=new U(128).fill(T);c.push(T,V,!0,!1);let e=c.length;const i=typeof TextDecoder!==S?new TextDecoder(X,{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Y(`TextDecoder not available`)}};if(typeof TextDecoder!==S){i.decode()};let j=V;let n=V;let p=V;let r=Z;const s=typeof TextEncoder!==S?new TextEncoder(X):{encode:()=>{throw Y(`TextEncoder not available`)}};const t=typeof s.encodeInto===a0?((a,b)=>s.encodeInto(a,b)):((a,b)=>{const c=s.encode(a);b.set(c);return {read:a.length,written:c.length}});const w=typeof a6===S?{register:()=>{},unregister:()=>{}}:new a6(a=>{b.__wbindgen_export_2.get(a.dtor)(a.a,a.b)});let G=V;let J=V;export default R;export{Q as initSync} \ No newline at end of file diff --git a/docs/bevy-example_bg.wasm b/docs/bevy-example_bg.wasm index c4f5115..c10c8ca 100644 Binary files a/docs/bevy-example_bg.wasm and b/docs/bevy-example_bg.wasm differ diff --git a/docs/index.html b/docs/index.html index 8f57ae4..8409f57 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -transform-gizmo demo \ No newline at end of file +transform-gizmo demo \ No newline at end of file diff --git a/examples/bevy/src/gui.rs b/examples/bevy/src/gui.rs index c1e5775..4cb21ab 100644 --- a/examples/bevy/src/gui.rs +++ b/examples/bevy/src/gui.rs @@ -4,7 +4,7 @@ use bevy_egui::{ EguiContexts, EguiPlugin, }; use transform_gizmo_bevy::{ - config::{DEFAULT_SNAP_ANGLE, DEFAULT_SNAP_DISTANCE, DEFAULT_SNAP_SCALE}, + config::{TransformPivotPoint, DEFAULT_SNAP_ANGLE, DEFAULT_SNAP_DISTANCE, DEFAULT_SNAP_SCALE}, prelude::*, }; @@ -47,7 +47,9 @@ fn update_ui( egui::CentralPanel::default() .frame(egui::Frame::none()) .show(contexts.ctx_mut(), |ui| { - let latest_gizmo_result = gizmo_targets.iter().find_map(|target| target.latest_result); + let latest_gizmo_result = gizmo_targets + .iter() + .find_map(|target| target.latest_result()); draw_gizmo_result(ui, latest_gizmo_result); }); @@ -56,14 +58,18 @@ fn update_ui( fn draw_gizmo_result(ui: &mut egui::Ui, gizmo_result: Option) { if let Some(result) = gizmo_result { let text = match result { - GizmoResult::Rotation { delta: _, total } => { - let (axis, angle) = DQuat::from(total).to_axis_angle(); + GizmoResult::Rotation { + axis, + delta: _, + total, + is_view_axis: _, + } => { format!( "Rotation axis: ({:.2}, {:.2}, {:.2}), Angle: {:.2} deg", axis.x, axis.y, axis.z, - angle.to_degrees() + total.to_degrees() ) } GizmoResult::Translation { delta: _, total } => { @@ -75,6 +81,16 @@ fn draw_gizmo_result(ui: &mut egui::Ui, gizmo_result: Option) { GizmoResult::Scale { total } => { format!("Scale: ({:.2}, {:.2}, {:.2})", total.x, total.y, total.z,) } + GizmoResult::Arcball { delta: _, total } => { + let (axis, angle) = DQuat::from(total).to_axis_angle(); + format!( + "Rotation axis: ({:.2}, {:.2}, {:.2}), Angle: {:.2} deg", + axis.x, + axis.y, + axis.z, + angle.to_degrees() + ) + } }; egui::Frame::none() @@ -92,20 +108,16 @@ fn draw_options(ui: &mut egui::Ui, gizmo_options: &mut GizmoOptions) { egui::Grid::new("options_grid") .num_columns(2) .show(ui, |ui| { - ui.label("Modes"); - egui::ComboBox::from_id_source("mode_cb") - .selected_text(format!("{}", gizmo_options.gizmo_modes.len())) - .show_ui(ui, |ui| { - for mode in [GizmoMode::Rotate, GizmoMode::Translate, GizmoMode::Scale] { - let mut mode_selected = gizmo_options.gizmo_modes.contains(mode); - ui.toggle_value(&mut mode_selected, format!("{:?}", mode)); - if mode_selected { - gizmo_options.gizmo_modes.insert(mode); - } else { - gizmo_options.gizmo_modes.remove(mode); - } - } - }); + ui.label("Allow rotation"); + draw_mode_picker(ui, GizmoMode::Rotate, &mut gizmo_options.gizmo_modes); + ui.end_row(); + + ui.label("Allow translation"); + draw_mode_picker(ui, GizmoMode::Translate, &mut gizmo_options.gizmo_modes); + ui.end_row(); + + ui.label("Allow scaling"); + draw_mode_picker(ui, GizmoMode::Scale, &mut gizmo_options.gizmo_modes); ui.end_row(); ui.label("Orientation"); @@ -122,6 +134,23 @@ fn draw_options(ui: &mut egui::Ui, gizmo_options: &mut GizmoOptions) { }); ui.end_row(); + ui.label("Pivot point"); + egui::ComboBox::from_id_source("pivot_cb") + .selected_text(format!("{:?}", gizmo_options.pivot_point)) + .show_ui(ui, |ui| { + for pivot_point in [ + TransformPivotPoint::MedianPoint, + TransformPivotPoint::IndividualOrigins, + ] { + ui.selectable_value( + &mut gizmo_options.pivot_point, + pivot_point, + format!("{:?}", pivot_point), + ); + } + }); + ui.end_row(); + ui.label("Group targets"); egui::Checkbox::without_text(&mut gizmo_options.group_targets).ui(ui); ui.end_row(); @@ -177,6 +206,18 @@ fn draw_options(ui: &mut egui::Ui, gizmo_options: &mut GizmoOptions) { }); } +fn draw_mode_picker(ui: &mut egui::Ui, mode: GizmoMode, modes: &mut EnumSet) { + let mut checked = modes.contains(mode); + + egui::Checkbox::without_text(&mut checked).ui(ui); + + if checked { + modes.insert(mode); + } else { + modes.remove(mode); + } +} + fn draw_color_picker(ui: &mut egui::Ui, color: &mut Color32) { let mut egui_color = egui::Color32::from_rgba_premultiplied(color.r(), color.g(), color.b(), color.a()); diff --git a/examples/bevy/src/picking.rs b/examples/bevy/src/picking.rs index 23c4f28..4d8f285 100644 --- a/examples/bevy/src/picking.rs +++ b/examples/bevy/src/picking.rs @@ -29,7 +29,7 @@ fn toggle_picking_enabled( picking_settings.is_enabled = gizmo_targets .iter() - .all(|target| !target.is_focused && !target.is_active); + .all(|target| !target.is_focused() && !target.is_active()); } fn update_picking( diff --git a/examples/egui/src/main.rs b/examples/egui/src/main.rs index 65867bf..068ca66 100644 --- a/examples/egui/src/main.rs +++ b/examples/egui/src/main.rs @@ -68,30 +68,43 @@ impl ExampleApp { self.rotation = transform.rotation.into(); self.translation = transform.translation.into(); - match result { - GizmoResult::Rotation { delta: _, total } => { - let (axis, angle) = DQuat::from(total).to_axis_angle(); - ui.label(format!( + let text = match result { + GizmoResult::Rotation { + axis, + delta: _, + total, + is_view_axis: _, + } => { + format!( "Rotation axis: ({:.2}, {:.2}, {:.2}), Angle: {:.2} deg", axis.x, axis.y, axis.z, - angle.to_degrees() - )); + total.to_degrees() + ) } GizmoResult::Translation { delta: _, total } => { - ui.label(format!( + format!( "Translation: ({:.2}, {:.2}, {:.2})", total.x, total.y, total.z, - )); + ) } GizmoResult::Scale { total } => { - ui.label(format!( - "Scale: ({:.2}, {:.2}, {:.2})", - total.x, total.y, total.z, - )); + format!("Scale: ({:.2}, {:.2}, {:.2})", total.x, total.y, total.z,) } - } + GizmoResult::Arcball { delta: _, total } => { + let (axis, angle) = DQuat::from(total).to_axis_angle(); + format!( + "Rotation axis: ({:.2}, {:.2}, {:.2}), Angle: {:.2} deg", + axis.x, + axis.y, + axis.z, + angle.to_degrees() + ) + } + }; + + ui.label(text); } }